Skip to content
Heist/ feed
Back to feed
Medium

Security advisory

Type: advisorySources: OSVCVE: CVE-2021-29489

Highcharts JS is a JavaScript charting library based on SVG. In Highcharts versions 8 and earlier, the chart options structure was not systematically filtered for XSS vectors. The potential impact was that content from untrusted sources could execute code in the end user's browser. The vulnerability is patched in version 9. As a workaround, implementers who are not able to upgrade may apply DOMPurify recursively to the options structure to filter out malicious markup.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2021-29489
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 11:44 UTC · Revision 1

Source evidence

CVE-2021-29489

core-osv · Original source

Published 5 May 2021, 16:15 UTC

Highcharts JS is a JavaScript charting library based on SVG. In Highcharts versions 8 and earlier, the chart options structure was not systematically filtered for XSS vectors. The potential impact was that content from untrusted sources could execute code in the end user's browser. The vulnerability is patched in version 9. As a workaround, implementers who are not able to upgrade may apply DOMPurify recursively to the options structure to filter out malicious markup.

osv:CVE-2021-29489
Complete source record
{
  "id": "48a819e2824a0a02502d072d02b20bcd61759db002b2b581205ecb47592e9369",
  "url": "https://osv.dev/vulnerability/CVE-2021-29489",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2021-29489",
    "summary": "Highcharts JS is a JavaScript charting library based on SVG. In Highcharts versions 8 and earlier, the chart options structure was not systematically filtered for XSS vectors. The potential impact was that content from untrusted sources could execute code in the end user's browser. The vulnerability is patched in version 9. As a workaround, implementers who are not able to upgrade may apply DOMPurify recursively to the options structure to filter out malicious markup.",
    "evidence": "osv:CVE-2021-29489",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2021-29489",
      "aliases": [
        "CVE-2021-29489",
        "GHSA-8j65-4pcq-xq95"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/highcharts/highcharts",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "ea08706707c0532d71e0398b93ec9bc331c8a28e"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:highcharts:highcharts:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "9.0.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v8.2.2",
            "v8.1.2",
            "v8.1.1",
            "v8.1.0",
            "v8.0.4",
            "v8.0.3",
            "v8.0.2",
            "v8.0.1",
            "v8.0.0",
            "v7.2.0",
            "v7.1.2",
            "v7.1.0",
            "v7.0.2",
            "v7.0.1",
            "hc6/master-tag",
            "v6.2.0",
            "v5.0.0",
            "v4.1.3",
            "highstock-v2.1.3",
            "highmaps-v2.1.3",
            "v4.1.0",
            "highstock-v2.1.0",
            "highmaps-v1.1.0",
            "highmaps-v1.0.2",
            "v4.0.1",
            "highstock-v2.0.1",
            "v3.0.8",
            "highstock-v1.3.8",
            "v3.0.5",
            "highstock-v1.3.5",
            "v3.0.4",
            "highstock-v1.3.4",
            "v3.0.3",
            "highstock-v1.3.3",
            "v3.0.2",
            "highstock-v1.3.2",
            "v3.0.1",
            "highstock-v1.3.1",
            "v3.0.0",
            "highstock-v1.3.0",
            "v2.3.5",
            "highstock-v1.2.5",
            "highstock-v1.2.4",
            "v2.3.3",
            "highstock-v1.2.3",
            "v2.3.2",
            "highstock-v1.2.2",
            "v2.3.0",
            "highstock-v1.2.0",
            "highstock-v1.1.6",
            "v2.2.5",
            "v2.2.4",
            "v2.2.2",
            "highstock-v1.1.5",
            "v2.2.1",
            "highstock-v1.1.4",
            "highstock-v1.1.3",
            "highstock-v1.1.2",
            "highstock-v1.1.1",
            "highstock-v1.1.0",
            "highstock-v1.0.1",
            "v2.1.5",
            "v2.1.4",
            "v2.1.3",
            "v2.1.2",
            "v2.1.1",
            "v2.1.0",
            "v2.0.5",
            "v2.0.4",
            "v2.0.3",
            "v2.0.2"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-29489.json"
          }
        }
      ],
      "modified": "2026-10-20T10:54:37.312799430Z",
      "provider": "osv",
      "references": [
        "https://github.com/highcharts/highcharts/security/advisories/GHSA-8j65-4pcq-xq95",
        "https://security.netapp.com/advisory/ntap-20210622-0005/"
      ],
      "provider_metadata": {}
    },
    "related_cves": [
      {
        "value": "CVE-2021-29489",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 385763,
  "published_at": "2021-05-05T16:15:08.023+00:00"
}