Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInject attacker-controlled Grid config
-
DeliverySupply rendering.icons with event-handler keys
-
ExploitCustom icon overrides built-in sort/pagination icon
-
ExecutionUser hovers over or activates icon
-
ImpactScript executes in hosting page origin
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Two concrete prerequisites must both hold: (1) untrusted data must reach the Grid configuration - specifically the |
| Impact | This is a genuine, well-substantiated client-side code-execution (DOM/stored XSS, CWE-79) issue, but its real-world priority is conditional rather than universal. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N, 8.5) and the vuln.today 'this_week' decision label both point to a serious-but-not-emergency posture - notably NOT act_now or emergency. The critical gating signals are PR:L (the attacker must be able to influence the Grid configuration object, i.e. untrusted data must reach |
| Exploit ScenarioDerived | An application renders a Highcharts Grid (grid-lite or grid-pro, 2.3.0-3.1.0) whose configuration is partly derived from untrusted input, and an attacker supplies a |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Event-handler attribute injection in Highcharts Grid's custom SVG icon definitions (npm packages @highcharts/grid-lite and @highcharts/grid-pro, versions 2.3.0 through 3.1.0) allows an attacker who can influence Grid configuration to execute script in the origin of the page hosting the grid. The flaw lets icon-definition child keys such as onmouseover or onload be written directly onto generated <path> elements; because custom icons override built-ins, the attacker can replace the default column-sort icon shown in every header or the pagination controls without naming a custom icon, and the payload fires when a user hovers over or activates the icon. Exploitation requires that untrusted data actually reach rendering.icons and that a victim interact with the affected icon, so grids with fully static developer-controlled configuration are not exposed; no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: 3.2.0 - upgrade @highcharts/grid-lite and @highcharts/grid-pro to that version (for example npm install @highcharts/grid-lite@3.2.0), and if the library is loaded from a CDN switch to a version-pinned URL such as https://cdn.jsdelivr.net/npm/@highcharts/grid-lite@3.2.0/grid-lite.js so an older cached build cannot be served; installation options are documented at https://www.highcharts.com/docs/grid/installation and the advisory is at https://github.com/highcharts/highcharts/security/advisories/GHSA-6g3c-p4fg-xv47. Where upgrading is not immediately possible, the vendor publishes a workaround to paste right after importing the Grid module: it monkey-patches Grid.Grid.prototype.loadUserOptions to walk rendering.icons and rebuild every child entry keeping only the path attributes d, fill, opacity, stroke, stroke-width, stroke-linecap, stroke-linejoin and transform (preserving width, height, viewBox and fill at the icon level). The trade-off is that this shim, like the upstream fix, silently drops any other attribute an operator's own custom icons might rely on, and it only covers configuration that flows through loadUserOptions - any code path that builds icon definitions after that hook is not sanitized, so patching remains the complete fix. Independently of either measure, stop routing untrusted input into rendering.icons: treat Grid configuration as code, keep it developer-controlled or sanitize it server-side, since the residual exposure depends entirely on attacker data reaching that object and on a user hovering over or activating the resulting icon.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 5 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Highcharts Grid renders its UI icons as inline SVG built from the rendering.icons definition objects. In the affected code (ts/Grid/Core/UI/SvgIcons.ts, createSvgFromDefinition), each child entry of an icon definition was turned into a <path> element, and the attribute set was assembled as the union of Object.keys(childDefinition) and Object.keys(pathDefaults) and then applied via setAttribute with no validation of attribute names; only the string form of the option passed through the library's markup allow-list. That gap is CWE-79 (improper neutralization of input during web page generation): any key in the attacker-supplied definition became an arbitrary DOM attribute, including inline event handlers such as onmouseover or onload, yielding classic DOM-based cross-site scripting when the browser dispatches the event. Custom icons take precedence over the built-in set, which is why no reference to a custom icon name is needed - replacing the always-rendered sort icon or pagination chevrons is sufficient, and pagination icons require pagination to be enabled. The fix replaces the dynamic key union with a fixed allow-list of path attributes ('d', 'fill', 'opacity', 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', 'transform'), and the accompanying regression tests assert that handler attributes are never applied while documented path attributes such as fill and transform still are. The attack surface is client-side only: the vulnerable code runs in the browser of whoever loads the grid, so impact is measured against that user's session and page origin rather than against a server.
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:P/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N
Attacker must influence Grid config (PR:L) and victim must hover/activate the icon (UI:R); script runs in the hosting page origin (S:C) enabling high confidentiality/integrity impact with no availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Highcharts JS is a JavaScript charting library based on SVG. From 2.3.0 until 3.2.0, Highcharts Grid creates SVG path elements from rendering.icons object definitions and previously copied every child key with setAttribute. An attacker who controls Grid configuration can supply event-handler attribute names in an icon definition. Because custom icons override built-ins, the attacker can replace default sort or pagination icons, and script runs in the hosting page origin when a user hovers over or activates the affected icon. This issue is fixed in 3.2.0.
Technical POC Analysis
CWE-79 (Improper Neutralization of Input During Web Page Generation) in Highcharts Grid's SVG icon renderer, reached through the rendering.icons configuration option.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Highcharts Grid, a data visualization component used in many internal and customer-facing dashboards, has a high-severity flaw that lets attackers inject and execute malicious scripts when users interact with grid icons. Any team relying on untrusted configuration data for grid icons is affected, and successful exploitation could lead to data theft, session hijacking, or unauthorized actions on behalf of users.
No vendor-released patch identified at time of analysis. Interim mitigations include rigorous validation of any data influencing rendering.icons, enforcing a strong Content Security Policy, and avoiding untrusted configuration sources for grid icons.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
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
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
SVG anchors whose xlink:href carries a javascript: URL slip past the markup filter that Highcharts applies to href and s
EUVD-2026-112283
GHSA-6g3c-p4fg-xv47
NVD
CVE.org
Exploit-DB