Skip to main content

Highcharts Grid Pro EUVDEUVD-2026-112281

| CVE-2026-116797 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-28 GitHub_M GHSA-5ghw-9mgr-jvx2
8.5
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Inject event-handler attribute into column config
  2. Delivery
    Grid renders input/select with raw setAttribute
  3. Exploit
    Victim hovers, focuses, or begins editing cell
  4. Execution
    Handler executes JS in hosting page origin
  5. Impact
    Steal 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

dashboards 3.6.0, < 4.0.0
grid-pro 2.0.0, < 3.2.0
highcharts 2.0.0, < 3.2.0

Affected Packages

npm @highcharts/dashboards fix: 4.0.0
npm @highcharts/grid-pro fix: 3.2.0
euvd dashboards fix: 4.0.0
euvd grid_pro fix: 3.2.0
euvd highcharts fix: 3.2.0

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

Vendor (GitHub_M) PRIMARY 8.5 HIGH
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
vuln.today AI 8.7 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 28, 2026 - 18:18 EUVD
CVE Published
Oct 28, 2026 - 17:28 cve.org
HIGH 8.5

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

Prevalence
Medium
Highcharts is widely used, but Grid Pro/Dashboards is a narrower commercial module
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium
EUVD NVD CVE.org Vulnrichment GHSA GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2026-118254 HIGH POC
8.6 Oct 28

DOM-based cross-site scripting in Highcharts Grid (@highcharts/grid-lite and @highcharts/grid-pro) versions 2.0.0 throug

CVE-2026-118245 HIGH
8.6 Oct 28

Cross-site scripting in Highcharts Dashboards (npm @highcharts/dashboards) from 1.0.0 through 4.2.1 lets an attacker who

CVE-2026-118242 HIGH
8.5 Oct 28

Event-handler attribute injection in Highcharts Grid's custom SVG icon definitions (npm packages @highcharts/grid-lite a

CVE-2026-118255 HIGH POC
8.4 Oct 28

A DOM-based cross-site scripting flaw in Highcharts Grid lets an attacker who can influence the Grid configuration set c

CVE-2026-118253 HIGH
8.4 Oct 28

DOM-based cross-site scripting in Highcharts Dashboards edit mode lets markup placed in the fullscreen language labels e

CVE-2026-118252 HIGH
8.4 Oct 28

Improper neutralization of HTML in the Highcharts Dashboards edit-mode sidebar lets markup supplied through the Dashboar

CVE-2026-118251 HIGH
8.4 Oct 28

Cross-site scripting in Highcharts JS (Core, plus the Stock, Maps and Gantt builds shipped from the same package) affect

CVE-2026-118246 HIGH
8.4 Oct 28

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

CVE-2026-118250 HIGH
7.2 Oct 28

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

CVE-2026-118249 HIGH
7.2 Oct 28

Prototype pollution in Highcharts JS 13.0.0 through 13.0.2 lets attacker-controlled series point data write integer-keye

CVE-2026-118244 HIGH
7.2 Oct 28

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

CVE-2026-116796 HIGH
7.2 Oct 28

SVG anchors whose xlink:href carries a javascript: URL slip past the markup filter that Highcharts applies to href and s

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy