Highcharts: dotted series.keys paths write to Object.prototype
What fixes it
- 12.6.1highcharts, npmGitHub
npm install highcharts@12.6.1 - 13.1.0highcharts, npmGitHub
npm install highcharts@13.1.0 - 11.4.9highcharts, npmGitHub
npm install highcharts@11.4.9
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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 any versions affected (6.1.0-13.0.2). Add the below IIFE to run after Highcharts is loaded.
((H)=>{const X = H.isObject;H.Point.prototype.setNestedProperty = function setNestedProperty(t,e,i){let s=i.split(".");return s.some(t=>"__proto__"===t||"constructor"===t)||s.reduce(function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:X(t[i],!0)?t[i]:{},t[i]},t),t};})(Highcharts);Obtaining the patched version
The patched releases are available from all the usual distribution channels. With npm, upgrade the affected package to the patched version listed above, for example npm install highcharts@13.1.1. If you load Highcharts from the CDN, use the versioned URLs on code.highcharts.com, for example https://code.highcharts.com/13.1.1/highcharts.js. For more on each installation method, see the installation guide.
Text from GitHub Advisory Database
Affected versions 9
- highcharts, npm>= 12.0.0, < 12.6.1GitHub
- highcharts, npm>= 13.0.0, <= 13.0.2GitHub
- highcharts, npm>= 6.1.0, < 11.4.9GitHub
- highchartsaffected: >= 6.1.0, < 11.4.9CVE List
- highchartsaffected: >= 12.0.0, < 12.6.1CVE List
- highchartsaffected: >= 13.0.0, < 13.1.0CVE List
- highcharts, npmfrom 12.0.0, fixed in 12.6.1OSV
- highcharts, npmfrom 13.0.0, fixed in 13.1.0OSV
- highcharts, npmfrom 6.1.0, fixed in 11.4.9OSV
References 6
- github.com/highcharts/highcharts/commit/fd4ee8140732618bbe71295aba55398fb1f8fa9eFixvia CVE List
- github.com/highcharts/highcharts/releases/tag/v13.1.0Fixvia CVE List
- github.com/highcharts/highcharts/security/advisories/GHSA-rmqc-xvr3-v46cAdvisoryvia CVE List
- github.com/advisories/GHSA-rmqc-xvr3-v46cAdvisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-118250Referencevia GitHub
- github.com/highcharts/highcharts/pull/25313Referencevia CVE List