Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInject untrusted string into Grid language config
-
DeliveryPagination controls render in DOM
-
ExploitLanguage string parsed via innerHTML
-
ExecutionEvent handler executes in page origin
-
ImpactSteal session or act as the user
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, both stated by the vendor: (1) untrusted data must reach the Grid language configuration - specifically the pagination language strings such as pageInfo and pageSizeLabel - and (2) pagination must be enabled on the Grid so the pagination controls actually render. The exploit requires no additional user interaction once those hold. Limiting factors: language options are normally set by the developer rather than exposed to attacker input, so exploitation depends on an application design that pipes untrusted/tenant data into the language config; it only affects @highcharts/grid-lite and @highcharts/grid-pro versions >= 2.0.0 and <= 3.1.0, and the PR:L metric reflects that the attacker must control that configuration. The vendor provides a prototype-patch workaround that escapes '<' in lang.pageInfo and lang.pageSizeLabel, but states that upgrading to 3.2.0 is the fix. |
| Impact | This is a CWE-79 DOM-based XSS in Highcharts Grid where pagination language strings (pageInfo, pageSizeLabel, page-number and ellipsis elements) are written via innerHTML instead of textContent/innerText, confirmed by the GHSA advisory and the fix commit. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, score 8.6) indicates network reach, low complexity, no user interaction, but PR:L - exploitation is NOT fully unauthenticated: an attacker must control the Grid language configuration, which in most deployments is set by the developer rather than exposed to untrusted input. The vuln.today decision label is 'this_week' rather than act_now/emergency. No EPSS score, no CISA KEV listing, and no public exploit were provided in the input, so the three independent exploitation-likelihood signals are all either absent or negative. Net assessment: the headline score is high, but real-world risk is conditional on a non-default data flow (untrusted data reaching the language config) plus pagination being enabled, so for typical deployments where language strings are developer-controlled this is a lower practical priority than the 8.6 suggests; it becomes a genuine priority specifically for applications that populate Grid language options from user- or tenant-supplied data. |
| Exploit ScenarioDerived | An application populates Highcharts Grid pagination language strings (e.g. pageInfo or pageSizeLabel) from untrusted or tenant-supplied data and has pagination enabled. When the pagination controls render, the attacker-supplied markup containing an event handler is parsed as HTML and executes JavaScript in the hosting page's origin, with no additional user interaction required. No public exploit was identified; the issue and its innerHTML sink are documented in the vendor advisory and fix commit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
DOM-based cross-site scripting in Highcharts Grid (@highcharts/grid-lite and @highcharts/grid-pro) versions 2.0.0 through 3.1.0 allows an attacker who controls the Grid pagination language configuration to inject markup carrying event handlers, which then execute in the origin of the page hosting the Grid when the pagination controls render. No additional user interaction is required once untrusted data reaches the language options and pagination is enabled; the class of impact is script execution in the host page's origin, which the independent assessment scores as scope-changed partial confidentiality and integrity impact with no availability effect. There is no CISA KEV listing and no public exploit code identified at time of analysis, though the vendor advisory, fix commit and workaround are all publicly available, and the vulnerability is prioritised as 'this_week' by vuln.today.
RemediationAI
Upgrade to the vendor-fixed release 3.2.0: for npm, run npm install @highcharts/grid-lite@3.2.0 or npm install @highcharts/grid-pro@3.2.0, and for CDN deployments switch to a versioned URL such as https://cdn.jsdelivr.net/npm/@highcharts/grid-lite@3.2.0/grid-lite.js, as described in the installation guide linked from the advisory at https://github.com/highcharts/highcharts/security/advisories/GHSA-r5wg-q8fc-p6w2. The fix commit is https://github.com/highcharts/highcharts/commit/1e8ded84d52191883965641b863cf0c73eb759aa. Where an immediate upgrade is not possible, the vendor publishes a prototype-patch workaround to be executed once after loading the Grid and before creating any grid instance: it wraps Pagination.prototype.updatePageInfo and Pagination.prototype.renderPageSizeSelector and HTML-escapes '<' in the lang.pageInfo and lang.pageSizeLabel strings, so those two values can no longer open an element. The trade-off is that this is a JavaScript-level monkey patch that must be installed before any Grid is constructed and covers only the pageInfo and pageSizeLabel keys touched by those two methods - the other interpolation points changed in the fix commit (page numbers, ellipsis and option elements) are not addressed by the snippet, so upgrading remains the complete remediation. Applications that never enable pagination, or that never feed tenant/untrusted data into the Grid language configuration, are not exposed to the described trigger.
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 is a JavaScript/SVG data-grid component distributed as the npm packages @highcharts/grid-lite and @highcharts/grid-pro, both covered by the supplied CPE data alongside the umbrella highcharts product entry. The flaw is CWE-79 (improper neutralisation of input during web page generation) in the DOM-based variant: the Pagination module writes its language strings into the document with innerHTML rather than textContent or innerText. The fix commit 1e8ded84d52191883965641b863cf0c73eb759aa changes five sinks in ts/Grid/Core/Pagination/Pagination.ts - the page-info element (this.pageInfoElement.innerHTML to textContent), the numbered page buttons and the ellipsis button (innerHTML to innerText), the page-size label (this.lang?.pageSizeLabel to innerText), and the generated option elements (textContent). Because the sink is markup parsing in the hosting page's origin, any element with an event handler supplied through lang.pageInfo or lang.pageSizeLabel becomes live script; the independent assessment notes the trigger requires both that untrusted data reach the language configuration and that pagination be enabled, and language options are normally developer-controlled rather than exposed to attacker input, which is why a low-privilege position (PR:L) is reflected in the scoring rather than an unauthenticated one.
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:N/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N
Attacker must control the Grid language configuration (PR:L); XSS runs in the hosting page origin so scope changes (S:C) with limited confidentiality/integrity impact 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 writes pagination language strings into the DOM as markup instead of text. An attacker who controls the Grid language configuration can provide elements with event handlers, which execute in the hosting page origin when pagination controls render. Exploitation requires pagination to be enabled but does not require additional user interaction. This issue is fixed in 3.2.0.
Technical POC Analysis
CWE-79 (Improper Neutralization of Input During Web Page Generation, cross-site scripting), DOM-based variant.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 PoC candidate from github (unverified)
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
A high-severity DOM-based cross-site scripting flaw (CVE-2026-118254) affects the Highcharts Grid components (@highcharts/grid-lite and @highcharts/grid-pro) in versions 2.0.0 through 3.1.0. Any web application embedding these libraries is exposed if it allows untrusted input into the pagination language configuration, enabling script execution in the host page's origin and risking compromise of customer sessions and data viewed through the Grid. Leadership should care because exploitation requires no user interaction and could undermine trust in customer-facing and internal portals; no public exploit has been identified at time of analysis.
Apply vendor patch.
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 allCross-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
SVG anchors whose xlink:href carries a javascript: URL slip past the markup filter that Highcharts applies to href and s
EUVD-2026-112356
GHSA-r5wg-q8fc-p6w2
NVD
CVE.org
Exploit-DB