Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInject event-handler attribute into column config
-
DeliveryGrid renders input/select with raw setAttribute
-
ExploitVictim hovers, focuses, or begins editing cell
-
ExecutionHandler executes JS in hosting page origin
-
ImpactSteal session/data in application context
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 | Exploitation requires that attacker-influenced/untrusted data reach the Grid column configuration - specifically an event-handler-named entry (e.g. onmouseover, onfocus) placed in a column's cells.renderer.attributes (view renderer, applied to the input in every rendered row) or cells.editMode.renderer.attributes (applied to the input created when a cell enters edit mode, which is focused immediately so an onfocus handler fires on edit start). A victim must then interact: hover over or focus one of the rendered inputs, or begin editing a cell (matching UI:P). This affects @highcharts/grid-pro 2.0.0-3.1.0 and the Pro DataGrid shipped in @highcharts/dashboards 3.6.0. Limiting factors: the attacker cannot exploit this unless they can influence the column/renderer configuration, and no script runs without user interaction with the affected input. If the column configuration comes only from fully trusted sources, the flaw is not reachable. The vendor provides a scrubbing workaround (an allowlist filter hooked into loadUserOptions/updateColumn), but upgrading to the fixed version is the complete fix. |
| Impact | This is a DOM/stored cross-site-scripting flaw (CWE-79) in Highcharts Grid Pro cell renderers, where event-handler attributes in a column's cells.renderer.attributes or cells.editMode.renderer.attributes map are written verbatim to input/select elements via raw setAttribute, executing in the hosting page's origin. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:L/SI:L) scores 8.5 (High): network reachable, low complexity, but gated by PR:L (the attacker must be able to influence the Grid column configuration) and UI:P (a user must hover, focus, or begin editing an input). No EPSS score and no KEV listing were provided, so there is no signal of mass or active exploitation; status is no public exploit confirmed as weaponized, though the fix commit itself ships a test harness demonstrating the exact onmouseover/onfocus payloads. The vuln.today priority is 'this_week' rather than act_now/emergency, which is consistent with a high-impact but interaction- and configuration-gated client-side issue rather than a wormable server flaw. Net: a genuine high-severity XSS worth patching promptly for anyone feeding untrusted data into Grid column configuration, but not evidence of a widespread in-the-wild campaign; the real risk hinges entirely on whether attacker-influenced data can reach the Grid config, which the generic CVSS score does not capture. |
| Exploit ScenarioDerived | An application renders a Highcharts Grid Pro / Dashboards grid whose column configuration is derived from untrusted input (for example a shared dashboard definition or user-supplied column metadata). An attacker sets an event-handler attribute such as onmouseover or onfocus in cells.renderer.attributes, so that when a victim user hovers over, focuses, or begins editing the affected input, attacker-controlled JavaScript runs in the hosting page's origin. The patch commit includes a test spec reproducing this with onmouseover and onfocus handlers, i.e. a public PoC reference exists but is not verified as a packaged working exploit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Cross-site scripting in Highcharts Grid Pro 2.0.0 through 3.1.0 lets an attacker who can influence column configuration place event-handler attributes into a column's cells.renderer.attributes or cells.editMode.renderer.attributes map, which are copied verbatim onto the input and select elements the grid creates, so script executes in the origin of the page hosting the Grid. A view renderer plants the handler on the input rendered in every row as soon as the grid draws, while an edit-mode renderer plants it on the input created when a cell enters edit mode, which is focused immediately so an onfocus handler fires the moment editing begins. Exploitation requires that untrusted data reach the Grid configuration and that a user hover over or focus a rendered input or start editing a cell; the Pro DataGrid shipped inside @highcharts/dashboards 3.6.0 is also affected. Fixed in Grid Pro 3.2.0 and Dashboards 4.0.0; no public exploit identified at time of analysis, and the flaw is not reachable when column configuration comes only from fully trusted sources.
RemediationAI
Upgrade to the patched releases: npm install @highcharts/grid-pro@3.2.0 (or later) and, for Dashboards, upgrade to 4.0.0 or later; if Grid is loaded from a CDN, pin a versioned URL such as https://cdn.jsdelivr.net/npm/@highcharts/grid-lite@3.2.0/grid-lite.js rather than a floating latest tag, and follow the installation guide for each distribution channel. Where an immediate upgrade is not possible, the vendor's workaround is to filter renderer attributes before the grid consumes them: install an allowlist of autofocus, checked, max, maxlength, min, minlength, multiple, pattern, placeholder, size and step, and hook it into Grid.Grid.prototype.loadUserOptions (also scrubbing Grid.defaultOptions and the incoming options object) and Grid.Grid.prototype.updateColumn so any attribute name outside that list is deleted from both cells.renderer.attributes and cells.editMode.renderer.attributes. The trade-off is that this monkey-patch runs in application code, must be applied before the Grid module initializes, must be repeated for every bundle that loads Grid or the Dashboards Pro DataGrid, and can be bypassed by any code path that mutates column options after the hooks are installed, so the vendor states that updating is the complete fix. Independently of either measure, do not let untrusted input populate column or renderer configuration. Details are in the advisory at https://github.com/highcharts/highcharts/security/advisories/GHSA-5ghw-9mgr-jvx2 and the fix commit at https://github.com/highcharts/highcharts/commit/52abd4f8f8db87dd20eab7c01444112380e30e98.
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 Pro is the commercial data-grid component of the Highcharts JavaScript charting family, built on SVG/DOM rendering, and it ships in-grid cell renderers of type numberInput, textInput and select. The root cause is CWE-79 (improper neutralization of input during web page generation): the input-type renderers iterate over every key in the renderer's attributes option and apply it with raw setAttribute calls without validating attribute names, so an entry named onmouseover, onfocus or similar becomes a live inline event handler in the hosting document's origin. The vendor's own fix note explains why the existing HTML sanitizer did not catch this: the AST attribute allowlist covers none of the HTML form-control attributes (min, max, step, pattern, placeholder and friends), so filtering purely through the AST list would have silently dropped every documented renderer option. The patch therefore adds a dedicated allowedInputAttributes allowlist (autofocus, checked, max, maxlength, min, minlength, multiple, pattern, placeholder, size, step) and drops anything in neither list; the accompanying test spec asserts that a legitimate min/title pair survives while an onmouseover and onfocus entry is stripped and window.xssFired stays undefined. CPE data ties the affected surface to highcharts, @highcharts/grid-pro and @highcharts/dashboards, and the assessed vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N) reflects low-privilege ability to supply configuration, mandatory victim interaction and scope change into the hosting page.
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 control column configuration (PR:L) and a user must hover/focus/edit an input (UI:R); injected script runs in the hosting page origin, crossing from the component into the page (S:C) with high C/I and no availability impact.
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.0.0 until 3.2.0, Highcharts Grid Pro input renderers copy the cells.renderer.attributes and cells.editMode.renderer.attributes maps to input or select elements with raw setAttribute calls. An attacker who controls column configuration can add event-handler attributes to every rendered row or to the control created when a cell enters edit mode. Script then runs in the hosting page origin when a user hovers over or focuses an input or begins editing. This issue is fixed in Grid Pro 3.2.0.
Technical POC Analysis
CWE-79 (Improper Neutralization of Input During Web Page Generation).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity cross-site scripting vulnerability (CVE-2026-116797) in Highcharts Grid Pro (versions 2.0.0-3.1.0) and the Pro DataGrid in @highcharts/dashboards 3.6.0 allows attackers who can influence column configuration to execute arbitrary script in the context of the hosting page. This could lead to session hijacking, data theft, or defacement for any organization using these components in customer-facing or internal applications. Leadership should prioritize remediation because the affected libraries are widely used in dashboards and data grids where user-supplied configuration is common.
Apply vendor patch. If patching is delayed, enforce strict input validation and sanitization on any data used in column configuration, especially cells.renderer.attributes and cells.editMode.renderer.attributes, and deploy a web application firewall rule to block script execution attempts in grid inputs.
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
Event-handler attribute injection in Highcharts Grid's custom SVG icon definitions (npm packages @highcharts/grid-lite a
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-112281
GHSA-5ghw-9mgr-jvx2
NVD
CVE.org
Vulnrichment
Exploit-DB