Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInject malicious propertyPath into component editableOptions
-
DeliveryUser opens component in Dashboards edit mode
-
ExploitEdit walks path and writes value onto Object.prototype
-
ExecutionPolluted property later read by page JavaScript
-
ImpactApplication-dependent integrity compromise
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the attacker to control a Dashboards component's editableOptions[].propertyPath - realistic only when board configuration passed to Dashboards.board() originates from an untrusted source such as an API, CMS, or user-generated content - with the path containing __proto__, constructor, or prototype segments. The malicious write does not fire automatically: a legitimate user must open the affected component in edit mode and edit the configured option (CVSS UI:A), so required user interaction is a genuine limiting factor. Affected versions are @highcharts/dashboards >= 1.0.0 and <= 4.2.1; 4.2.2 is fixed. A further limiter is that the injected Object.prototype property is inert until other code on the page reads it, so impact depends entirely on the consuming application. The vendor-supplied workaround (filtering unsafe propertyPath keys before passing config to Dashboards.board(), or patching updateOptions) mitigates on unpatched versions, but the advisory notes updating is the complete fix. |
| Impact | This is a moderate-severity, precondition-gated prototype pollution flaw (CWE-1321) rather than a drop-everything emergency. The vendor CVSS 4.0 score is 6.9 (medium) with vector AV:N/AC:L/AT:N/PR:L/UI:A, meaning network reachable and low complexity but requiring low-level privileges AND active user interaction. The vuln.today decision label is 'this_month', signaling it belongs in the normal monthly patch cycle, not an act_now/emergency track. No EPSS score and no CISA KEV entry were supplied, and no public exploit code is referenced - only the vendor GHSA advisory and the fix commit. The practical risk is bounded by two real preconditions that the raw CVSS does not fully convey: the attacker must control a component's editableOptions[].propertyPath (realistic only when board configuration is sourced from an untrusted API, CMS, or user-generated content), and a legitimate user must actually edit that option in Dashboards edit mode to trigger the write (UI:A). The direct technical impact is an integrity write onto Object.prototype (VI:H); confidentiality impact is rated N and the ultimate consequence 'is determined by the consuming application,' so any availability or disclosure outcome is contingent, not guaranteed. Net: a legitimate issue worth patching this month, but the attacker-control-of-config plus required user interaction keep it well below the urgency of an unauthenticated, no-interaction RCE. |
| Exploit ScenarioDerived | An application renders a Highcharts Dashboards board whose component configuration is partly sourced from untrusted input (an API, CMS, or user-generated content); the attacker submits a component whose editableOptions entry has a propertyPath containing __proto__ or constructor. When a legitimate user later opens that component in edit mode and changes the option, the walk applies the value onto Object.prototype, polluting it for all page JavaScript. No public exploit code is referenced - only the vendor advisory and patch commit - and the effect stays inert until other code on the page reads the injected property. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Prototype pollution in Highcharts Dashboards edit mode lets an attacker who controls a component's editableOptions[].propertyPath write attacker-chosen values onto Object.prototype when a user edits that option in the dashboard, after which the injected property is visible to every script on the page. The flaw affects the @highcharts/dashboards npm package from 1.0.0 through 4.2.1 and is fixed in 4.2.2; exploitation requires the board configuration passed to Dashboards.board() to come from an untrusted source (API, CMS, user-generated content) and requires a low-privileged user to open the component in edit mode and trigger the edit. Impact is application-dependent because the injected property stays inert until other page code reads it, and no public exploit has been identified at time of analysis; the vendor states that updating is the complete fix.
RemediationAI
Upgrade @highcharts/dashboards to 4.2.2 (the version listed as fixed in the advisory's package data and the dashboards-v4.2.2 release tag; the vendor's install and CDN examples use 4.2.3, i.e. npm install @highcharts/dashboards@4.2.3 or a versioned URL such as https://code.highcharts.com/dashboards/4.2.3/dashboards.js). Details are in GHSA-wg5j-9wp8-2ggm. On versions that cannot be updated immediately, the vendor documents three workarounds: filter untrusted board configuration before calling Dashboards.board() by dropping any editableOptions entry whose propertyPath contains __proto__, constructor or prototype, which works on all affected versions but does not cover editable options contributed by a custom component registered at runtime; if Dashboards is installed from npm and imported from es-modules, wrap AccordionMenu.prototype.updateOptions so it returns early on those keys; and if dashboards.js is loaded from a script tag, run a one-time patch after importing dashboards.js and modules/layout.js but before creating any board, hooking EditMode.prototype.init to override the accordion menu's updateOptions. The vendor notes the injected property remains inert until other page code reads it and that updating is the complete fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is a CWE-1321 prototype pollution in the AccordionMenu class of the Dashboards edit-mode sidebar (ts/Dashboards/EditMode/AccordionMenu.ts). Each component's editableOptions entry carries a propertyPath that edit mode walks segment by segment when applying an edited value to component options; before the fix those segments were never validated, so a path containing __proto__ or constructor reaches the object prototype chain and the write lands on Object.prototype rather than on the intended component option. The upstream fix, commit 05efb9849130461fe61992ea8f58d22edaad978b, adds a guard in AccordionMenu.updateOptions that returns early whenever any segment equals __proto__, constructor or prototype. Because the polluted key is placed on the shared prototype, every object in the page inherits it and any downstream code that reads that property - configuration loaders, template renderers, option merges in the SVG-based Highcharts charting stack - determines the real consequence, which is why the vendor describes the injected property as inert until consumed. The CPE records cover both the core highcharts project and the separately versioned @highcharts/dashboards package, which is where the vulnerable edit-mode code lives.
Know when Highcharts gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:H/VA:H/SC:L/SI:L/SA:L
Attacker needs low-privilege control of board config (PR:L) and a user must edit in edit mode (UI:R); prototype pollution crosses into all page code (S:C) with a direct integrity write (I:H), while confidentiality/availability effects are app-dependent (C:N/A:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Highcharts JS is a JavaScript charting library based on SVG. From 1.0.0 until 4.2.2, Highcharts Dashboards edit mode walks editableOptions propertyPath segments without rejecting prototype-related keys. An attacker who controls editableOptions can provide a path through __proto__ or constructor, and a user's edit writes the configured value onto Object.prototype. The property then becomes visible to JavaScript throughout the page, with consequences determined by the consuming application. This issue is fixed in 4.2.2.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Highcharts
View allDOM-based cross-site scripting in Highcharts Grid (@highcharts/grid-lite and @highcharts/grid-pro) versions 2.0.0 throug
Cross-site scripting in Highcharts Dashboards (npm @highcharts/dashboards) from 1.0.0 through 4.2.1 lets an attacker who
Event-handler attribute injection in Highcharts Grid's custom SVG icon definitions (npm packages @highcharts/grid-lite a
Cross-site scripting in Highcharts Grid Pro 2.0.0 through 3.1.0 lets an attacker who can influence column configuration
A DOM-based cross-site scripting flaw in Highcharts Grid lets an attacker who can influence the Grid configuration set c
DOM-based cross-site scripting in Highcharts Dashboards edit mode lets markup placed in the fullscreen language labels e
Improper neutralization of HTML in the Highcharts Dashboards edit-mode sidebar lets markup supplied through the Dashboar
Cross-site scripting in Highcharts JS (Core, plus the Stock, Maps and Gantt builds shipped from the same package) affect
Cross-site scripting in Highcharts JS affects the 10.x branch before 11.4.9, 12.x before 12.6.1, and 13.x through 13.0.2
Prototype pollution in the Highcharts JS charting library (6.1.0 up to 11.4.9, 12.0.0 up to 12.6.1, and 13.0.0 through 1
Prototype pollution in Highcharts JS 13.0.0 through 13.0.2 lets attacker-controlled series point data write integer-keye
Client-side cross-site scripting in Highcharts 12.0.0 through <12.6.1 and 13.0.0 through 13.0.2 - including the Stock, M
EUVD-2026-112362
NVD
CVE.org
GitHub
Exploit-DB