Skip to main content

Highcharts Grid CVE-2026-118242

| EUVDEUVD-2026-112283 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-28 GitHub_M GHSA-6g3c-p4fg-xv47
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 attacker-controlled Grid config
  2. Delivery
    Supply rendering.icons with event-handler keys
  3. Exploit
    Custom icon overrides built-in sort/pagination icon
  4. Execution
    User hovers over or activates icon
  5. Impact
    Script 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 rendering.icons icon-definition objects - so the attacker can supply child entries whose keys name event handlers (e.g. onmouseover, onload); and (2) a user must hover over or activate the affected icon (UI:P). Because custom icons take precedence over built-ins, the default column-sort icon (shown in every column header) or the pagination controls (where pagination is enabled) can be replaced without any reference to a custom icon name. Limiting factors that reduce real-world risk: exploitation is impossible where the Grid configuration is entirely developer-controlled/static and never fed untrusted input (PR:L); it also depends on user interaction with the icon; and it is confined to @highcharts/grid-lite and grid-pro versions 2.3.0 through 3.1.0.

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 rendering.icons) and UI:P (a user must hover over or activate the affected icon). These two conditions sharply narrow the exploitable population versus a raw 8.5 network-vector read. It is not in CISA KEV, so there is no confirmed active exploitation, and no EPSS score was supplied, so widespread-exploitation probability cannot be quantified from the input. A working demonstration of the injection exists in the fix commit's own Playwright test (event-handler attributes onmouseover/onload on a custom icon path), so this is more than theoretical, but that is defensive test code, not a distributed weaponized exploit. Bottom line: treat as a high-severity injection to patch this cycle for any deployment where Grid configuration can be influenced by untrusted input; where configuration is fully developer-controlled and static, real-world risk is materially lower.

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 rendering.icons custom icon definition whose child path entry includes event-handler keys such as onmouseover or onload. Because custom icons override built-ins like the default column-sort icon and pagination controls, the malicious handler is attached with no special icon reference needed, and the attacker's script runs in the hosting page's origin the moment a user hovers over or activates the icon. A demonstration of the injection exists in the fix commit's test suite, but no standalone public exploit is identified.

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

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

highcharts < 13.1.0
grid-pro 2.3.0, < 3.2.0
grid-lite 2.3.0, < 3.2.0

Affected Packages

npm @highcharts/grid-lite fix: 3.2.0
npm @highcharts/grid-pro fix: 3.2.0
euvd grid_lite fix: 3.2.0
euvd grid_pro fix: 3.2.0
euvd highcharts fix: 13.1.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 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

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

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:30 cve.org
HIGH 8.5

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

Prevalence
Medium
Highcharts widely used, but the Grid component is a newer, narrower product
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium

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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

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-116797 HIGH
8.5 Oct 28

Cross-site scripting in Highcharts Grid Pro 2.0.0 through 3.1.0 lets an attacker who can influence column configuration

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