highcharts
Ecosystem: npm
Downloads: 11.18 Mln
- 0CriticalAffects 0 versions
- 9HighAffects 19 versions
- 0MediumAffects 0 versions
- 1ModerateAffects 1 version
- 0LowAffects 0 versions
- Critical0 (0.0%)
- High9 (90.0%)
- Medium0 (0.0%)
- Moderate1 (10.0%)
- Low0 (0.0%)
Monthly breakdown
- Critical
- High
- Medium
- Moderate
- Low
- 6 vulnerabilities
- Critical: 0
- High: 6
- Medium: 0
- Moderate: 0
- Low: 0
- 1 vulnerabilities
- Critical: 0
- High: 1
- Medium: 0
- Moderate: 0
- Low: 0
- 2 vulnerabilities
- Critical: 0
- High: 1
- Medium: 0
- Moderate: 1
- Low: 0
- 1 vulnerabilities
- Critical: 0
- High: 1
- Medium: 0
- Moderate: 0
- Low: 0
Vulnerabilities (10)
Known vulnerabilities affecting highcharts, based on data from OSV.
| ID | Severity | Summary | Affected versions | Published | Source |
|---|---|---|---|---|---|
| GHSA-35rr-xwfh-x789 | High | Highcharts Core: `breadcrumbs.style` keys become SVG event-handler attributes### Impact The breadcrumbs `style` option is applied to the breadcrumb button as SVG attributes rather than as CSS, and the attribute names are not filtered. An attacker who controls the chart configuration can supply keys under `breadcrumbs.style` that name event handlers, and those keys become live handlers on the breadcrumb button, so the attacker's script runs in the origin of the page hosting the chart. The option is reached through `drilldown.breadcrumbs`, `navigation.breadcrumbs` and the `breadcrumbs` option of the treemap, sunburst and treegraph series. Exploitation requires that untru |
| GitHub (opens in a new tab) | |
| GHSA-5793-x2q3-c3q7 | High | Highcharts: `javascript:` URL in credits.href runs script on click### Impact A `credits.href` value beginning with `javascript:` is assigned to the window location when the credits label is clicked, without being checked against an allowed-scheme list. An attacker who controls the chart configuration can therefore run script in the origin of the page hosting the chart. Exploitation requires that untrusted data reach the chart configuration and that a user click the credits label. Charts built with Highcharts Stock, Maps and Gantt are included, since those ship from the same package as Core. ### Workarounds Drop-in fix - for any versions affected (5.0.0-13.0 |
| GitHub (opens in a new tab) | |
| GHSA-65hg-cf3f-5m39 | High | Highcharts Core: HTML text parsing falls back to unfiltered `innerHTML` during printing### Impact When the HTML text parser cannot obtain a document from `DOMParser` because the call throws, it falls back to assigning the raw markup to the `innerHTML` of an element created in the hosting document, and the allow-list is applied only to the resulting DOM afterwards. In Chromium the Trusted Types policy callback that the parser uses throws while a `beforeprint` handler is running, so if the hosting page re-renders the chart from a `beforeprint` handler, every HTML-rendered text option parsed at that moment, such as `useHTML` titles, axis labels and data labels or text set by respon |
| GitHub (opens in a new tab) | |
| GHSA-gfvx-2c2g-38wq | High | Highcharts: series column construction writes to Object.prototype### Impact When series columns are built from point objects, the point option keys are used directly as data column ids, so the write that populates a column reaches `Object.prototype` and the `Object` constructor. Keys named `__proto__` and `constructor` survive `JSON.parse` as own enumerable properties, so an attacker who controls the point objects can set integer-keyed properties on `Object.prototype`, one per point index, to values of their choosing. Named properties cannot be reached this way. The integer keys still affect every object in the page: reading an out-of-range index on any arr |
| GitHub (opens in a new tab) | |
| GHSA-mw4f-gj5x-6xr4 | High | Highcharts Core: `javascript:` URL in an `xlink:href` attribute survives text filtering and reaches exported charts### Impact The filter applied to markup in text options checks `href`, `src` and a few similar attributes against an allowed-scheme list, but accepts `xlink:href` without that check, so an SVG anchor whose `xlink:href` is a `javascript:` URL passes the filter, whether or not the option is rendered with `useHTML`. In the live page the attribute is written without the XLink namespace, so browsers do not treat the anchor as a link there. The attribute is preserved verbatim in the chart's serialised output: the SVG produced by the exporting module, including the default SVG download, declares the |
| GitHub (opens in a new tab) | |
| GHSA-rmqc-xvr3-v46c | High | Highcharts: dotted series.keys paths write to Object.prototype### Impact A dot-separated key path taken from `series.keys` is followed without filtering the individual segments. An attacker who controls `series.keys` and the matching point data can use a path such as `__proto__.polluted` to set arbitrary properties on `Object.prototype`. The resulting properties are visible to all JavaScript running in the page, not only to the chart. No user interaction is required beyond rendering the chart. The injected properties are inert until other code on the page reads them, so consequences depend on the consuming application. ### Workarounds Drop-in fix - for |
| GitHub (opens in a new tab) | |
| GHSA-8j65-4pcq-xq95 | High | Options structure open to Cross-site Scripting if passed unfiltered### Impact 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. Especially when using the `useHTML` flag, HTML string options would be inserted unfiltered directly into the DOM. When `useHTML` was false, malicious code could be inserted by using various character replacement tricks or malformed HTML. If your chart configuration comes from a trusted source like a static setup or pre-filtered HTML (or no markup at all in the con |
| GitHub (opens in a new tab) | |
| GHSA-gr4j-r575-g665 | High | Cross-Site Scripting in highchartsVersions of `highcharts` prior to 7.2.2 or 8.1.1 are vulnerable to Cross-Site Scripting (XSS). The package fails to sanitize `href` values and does not restrict URL schemes, allowing attackers to execute arbitrary JavaScript in a victim's browser if they click the link. |
| GitHub (opens in a new tab) | |
| GHSA-m45f-4828-5cv5 | Moderate | Regular Expression Denial of Service in highchartsWithdrawn: Duplicate of GHSA-xmc8-cjfr-phx3 |
| GitHub (opens in a new tab) | |
| GHSA-xmc8-cjfr-phx3 | High | Regular Expression Denial of Service in highchartsVersions of `highcharts` prior to 6.1.0 are vulnerable to Regular Expression Denial of Service (ReDoS). Untrusted input may cause catastrophic backtracking while matching regular expressions. This can cause the application to be unresponsive leading to Denial of Service. ## Recommendation Upgrade to version 6.1.0 or higher. |
| GitHub (opens in a new tab) |
- GHSA-35rr-xwfh-x789HighHighcharts Core: `breadcrumbs.style` keys become SVG event-handler attributes
>= 10.0.0, < 11.4.9>= 12.0.0, < 12.6.1- +1 more
Affected versions:>= 10.0.0, < 11.4.9>= 12.0.0, < 12.6.1>= 13.0.0, < 13.1.0
### Impact The breadcrumbs `style` option is applied to the breadcrumb button as SVG attributes rather than as CSS, and the attribute names are not filtered. An attacker who controls the chart configuration can supply keys under `breadcrumbs.style` that name event handlers, and those keys become live handlers on the breadcrumb button, so the attacker's script runs in the origin of the page hosting the chart. The option is reached through `drilldown.breadcrumbs`, `navigation.breadcrumbs` and the `breadcrumbs` option of the treemap, sunburst and treegraph series. Exploitation requires that untru
CVE: CVE-2026-118246
- GHSA-5793-x2q3-c3q7HighHighcharts: `javascript:` URL in credits.href runs script on click
< 11.4.9>= 12.0.0, < 12.6.1- +1 more
Affected versions:< 11.4.9>= 12.0.0, < 12.6.1>= 13.0.0, < 13.1.0
### Impact A `credits.href` value beginning with `javascript:` is assigned to the window location when the credits label is clicked, without being checked against an allowed-scheme list. An attacker who controls the chart configuration can therefore run script in the origin of the page hosting the chart. Exploitation requires that untrusted data reach the chart configuration and that a user click the credits label. Charts built with Highcharts Stock, Maps and Gantt are included, since those ship from the same package as Core. ### Workarounds Drop-in fix - for any versions affected (5.0.0-13.0
CVE: CVE-2026-118251
- GHSA-65hg-cf3f-5m39HighHighcharts Core: HTML text parsing falls back to unfiltered `innerHTML` during printing
>= 12.0.0, < 12.6.1>= 13.0.0, < 13.1.0
### Impact When the HTML text parser cannot obtain a document from `DOMParser` because the call throws, it falls back to assigning the raw markup to the `innerHTML` of an element created in the hosting document, and the allow-list is applied only to the resulting DOM afterwards. In Chromium the Trusted Types policy callback that the parser uses throws while a `beforeprint` handler is running, so if the hosting page re-renders the chart from a `beforeprint` handler, every HTML-rendered text option parsed at that moment, such as `useHTML` titles, axis labels and data labels or text set by respon
CVE: CVE-2026-118244
- GHSA-gfvx-2c2g-38wqHighHighcharts: series column construction writes to Object.prototype
>= 13.0.0, < 13.1.0
### Impact When series columns are built from point objects, the point option keys are used directly as data column ids, so the write that populates a column reaches `Object.prototype` and the `Object` constructor. Keys named `__proto__` and `constructor` survive `JSON.parse` as own enumerable properties, so an attacker who controls the point objects can set integer-keyed properties on `Object.prototype`, one per point index, to values of their choosing. Named properties cannot be reached this way. The integer keys still affect every object in the page: reading an out-of-range index on any arr
CVE: CVE-2026-118249
- GHSA-mw4f-gj5x-6xr4HighHighcharts Core: `javascript:` URL in an `xlink:href` attribute survives text filtering and reaches exported charts
>= 10.3.2, < 11.4.9>= 12.0.0, < 12.6.2- +1 more
Affected versions:>= 10.3.2, < 11.4.9>= 12.0.0, < 12.6.2>= 13.0.0, < 13.1.1
### Impact The filter applied to markup in text options checks `href`, `src` and a few similar attributes against an allowed-scheme list, but accepts `xlink:href` without that check, so an SVG anchor whose `xlink:href` is a `javascript:` URL passes the filter, whether or not the option is rendered with `useHTML`. In the live page the attribute is written without the XLink namespace, so browsers do not treat the anchor as a link there. The attribute is preserved verbatim in the chart's serialised output: the SVG produced by the exporting module, including the default SVG download, declares the
CVE: CVE-2026-116796
- GHSA-rmqc-xvr3-v46cHighHighcharts: dotted series.keys paths write to Object.prototype
>= 12.0.0, < 12.6.1>= 13.0.0, < 13.1.0- +1 more
Affected versions:>= 12.0.0, < 12.6.1>= 13.0.0, < 13.1.0>= 6.1.0, < 11.4.9
### Impact A dot-separated key path taken from `series.keys` is followed without filtering the individual segments. An attacker who controls `series.keys` and the matching point data can use a path such as `__proto__.polluted` to set arbitrary properties on `Object.prototype`. The resulting properties are visible to all JavaScript running in the page, not only to the chart. No user interaction is required beyond rendering the chart. The injected properties are inert until other code on the page reads them, so consequences depend on the consuming application. ### Workarounds Drop-in fix - for
CVE: CVE-2026-118250
- GHSA-8j65-4pcq-xq95HighOptions structure open to Cross-site Scripting if passed unfiltered
< 9.0.0
### Impact 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. Especially when using the `useHTML` flag, HTML string options would be inserted unfiltered directly into the DOM. When `useHTML` was false, malicious code could be inserted by using various character replacement tricks or malformed HTML. If your chart configuration comes from a trusted source like a static setup or pre-filtered HTML (or no markup at all in the con
CVE: CVE-2021-29489
- GHSA-gr4j-r575-g665HighCross-Site Scripting in highcharts
< 7.2.2>= 8.0.0, < 8.1.1
Versions of `highcharts` prior to 7.2.2 or 8.1.1 are vulnerable to Cross-Site Scripting (XSS). The package fails to sanitize `href` values and does not restrict URL schemes, allowing attackers to execute arbitrary JavaScript in a victim's browser if they click the link.
- GHSA-m45f-4828-5cv5ModerateRegular Expression Denial of Service in highcharts
< 6.1.0
Withdrawn: Duplicate of GHSA-xmc8-cjfr-phx3
- GHSA-xmc8-cjfr-phx3HighRegular Expression Denial of Service in highcharts
< 6.1.0
Versions of `highcharts` prior to 6.1.0 are vulnerable to Regular Expression Denial of Service (ReDoS). Untrusted input may cause catastrophic backtracking while matching regular expressions. This can cause the application to be unresponsive leading to Denial of Service. ## Recommendation Upgrade to version 6.1.0 or higher.
CVE: CVE-2018-20801