Skip to main content

Highcharts CVE-2026-116796

| EUVDEUVD-2026-112279 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-28 GitHub_M GHSA-mw4f-gj5x-6xr4
7.2
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Inject javascript: URL into chart text option
  2. Delivery
    Chart exported or SVG markup serialized
  3. Exploit
    xlink:href survives scheme filter
  4. Execution
    Serialized SVG re-parsed as live document
  5. Persist
    User activates crafted anchor
  6. Impact
    Script executes in document 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

Exploitation requires a specific three-part chain stated by the vendor: (1) attacker-controlled untrusted data must reach a chart text option such as the title (via an SVG anchor using xlink:href with a javascript: URL); (2) the chart must be exported (including the default SVG download via the exporting module) or its container markup serialized so the XLink namespace is declared, and that output must be parsed again as a document (downloaded SVG opened in a browser, or exported/server-rendered markup inlined into a page); and (3) a user must activate (click) the link. The flaw does NOT trigger in the originally rendered live page, because there the attribute is written without the XLink namespace and browsers do not treat the anchor as a link - this is the key limiting factor. It is independent of whether useHTML is set. Applications that never place untrusted data into chart configuration, or never export/re-inline the SVG, are not exposed.

Impact

This is a stored/DOM XSS (CWE-79) in the Highcharts JS charting library where an SVG anchor's xlink:href attribute escapes the allowed-scheme filter that guards href and src, letting a javascript: URL survive into serialized/exported SVG output. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:A, score 7.2) is internally consistent with the mechanism described: AT:P reflects that exploitation is not possible in the live rendered page (the attribute is written without the XLink namespace so browsers do not treat it as a link) and only becomes live after the chart is exported or server-rendered and that markup is parsed again; UI:A reflects that a user must activate the link; PR:L reflects that the attacker must be able to place untrusted data into a chart text option. There is no CISA KEV listing and no EPSS score in the provided data, so widespread automated exploitation is not indicated. A public reference containing the attack payload exists (the fix commit adds a unit test using '<a xlink:href="javascript:...">'), but there is no packaged weaponized exploit and no evidence of in-the-wild use. The vuln.today priority is 'this_week' (not act_now/emergency), consistent with a real but conditional client-side issue rather than a mass-exploitation emergency: it is a genuine patch-this-cycle item for anyone rendering attacker-influenced chart text and then exporting or re-inlining that SVG, but the multi-step precondition chain (attacker-controlled text + export/re-parse + user click) keeps real-world risk below what the 7.2 base score alone might suggest for environments that never expose untrusted chart configuration.

Exploit ScenarioDerived

An application lets untrusted input populate a chart text option (such as the title) and then offers the chart's SVG as a download or inlines the server-rendered SVG into another page. The attacker supplies a title containing an SVG anchor whose xlink:href is a javascript: URL; this survives the text filter and is preserved verbatim in the exported SVG, which declares the XLink namespace. When a victim opens the downloaded SVG in a browser or views the page that inlined it and clicks the link, attacker script runs in that document's origin. The fix commit publicly includes a unit-test payload demonstrating the injection, though no standalone weaponized exploit is provided.

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

SVG anchors whose xlink:href carries a javascript: URL slip past the markup filter that Highcharts applies to href and src, so a chart text option such as the title can retain an active script link in its serialized form. The bug affects npm package highcharts from 10.3.2 through the 11.x, 12.x and 13.x branches prior to 11.4.9, 12.6.2 and 13.1.1 respectively, and only becomes dangerous when the chart is exported (the default SVG download declares the XLink namespace) or its container markup is serialized and then re-parsed as a document, at which point a user click runs script in that document's origin - the live rendered page itself does not produce a clickable link. Exploitation therefore needs attacker-controlled data in the chart configuration, an export/re-inline step, and user interaction (CVSS:4.0 PR:L/UI:A, and the assessor's CVSS:3.1 AC:H/PR:L/UI:R with scope change); no public exploit code or in-the-wild activity was identified at time of analysis, and the priority label is this_week rather than emergency.

RemediationAI

Vendor-released patches are 11.4.9, 12.6.2 and 13.1.1; upgrade the affected branch to its fixed release (for example npm install highcharts@13.1.1), and if you load from the CDN switch to versioned URLs such as https://code.highcharts.com/13.1.1/highcharts.js, per the advisory at https://github.com/highcharts/highcharts/security/advisories/GHSA-mw4f-gj5x-6xr4. The vendor also publishes a drop-in workaround for all affected versions (10.3.2 through 13.1.0): load an IIFE after Highcharts and before creating any chart that wraps AST.filterUserAttributes, deleting any xlink:href value that does not start with an allowed reference prefix, with the fix commit at https://github.com/highcharts/highcharts/commit/6cf359fb144aa51fdc105e2b9bbd013439b02c88. Where upgrading is not yet possible, treat exported and server-rendered chart SVG as untrusted markup - do not open downloaded SVG exports directly in a browser and do not inline exported or server-rendered chart markup into pages - and keep attacker-controlled strings out of text options such as the title, accepting that these are partial mitigations rather than a complete fix.

Affected VersionsENISA

highcharts 10.3.2, < 11.4.9
highcharts 12.0.0, < 12.6.2
highcharts 13.0.0, < 13.1.1

Affected Packages

npm highcharts fix: 11.4.9, 12.6.2, 13.1.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Highcharts renders chart text through an AST layer (ts/Core/Renderer/HTML/AST.ts) that sanitizes user-supplied markup attributes against an allowed-scheme list; the attribute set passed to that check covered background, dynsrc, href, lowsrc and src but omitted xlink:href, so a javascript: URL on an SVG <a> element was never validated. This is CWE-79 (improper neutralization of input during web page generation), and the defect is independent of the useHTML option. The limiting technical factor is namespace handling: in the live DOM the attribute is written without the XLink namespace, so browsers do not treat the anchor as a link there; however, the exporting module's SVG output - including the default SVG download - declares the XLink namespace and preserves the attribute verbatim, as does the serialized chart container markup, so any document that re-parses that output (an opened SVG file or a page inlining exported/server-rendered markup) contains a functioning link. The upstream commit adds 'xlink:href' to the filtered attribute list and adds a unit test asserting that getSVG() output no longer contains xlink:href="javascript:.

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 7.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N
vuln.today AI 4.4 MEDIUM

AC:H and UI:R because exploitation needs the export/re-parse chain plus a user click; PR:L because the attacker must control chart text config; S:C as script runs in the re-parsed document's origin with limited C/I impact.

3.1 AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:A/VC:L/VI:L/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
Present
Privileges Required
Low
User Interaction
Active
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:23 cve.org
HIGH 7.2

DescriptionCVE.org

Highcharts JS is a JavaScript charting library based on SVG. From 10.3.2 until 11.4.9, 12.6.2, and 13.1.1, Highcharts accepts an SVG anchor xlink:href attribute without applying the allowed-scheme check used for href and src. An attacker who controls a chart text option can preserve a javascript URL in serialized chart output. When exported or server-rendered SVG is parsed again and a user activates the link, script runs in the origin of that document. This issue is fixed in 11.4.9, 12.6.2 and 13.1.1.

Technical POC Analysis

CWE-79 (cross-site scripting via improper neutralization).

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, a widely used charting library, has a high-severity vulnerability (CVE-2026-116796) that can allow script execution when charts are exported or re-serialized, affecting any application that uses Highcharts 10.3.2 through 13.x. This requires attacker-controlled chart configuration, an export or inlining step, and user interaction, but successful exploitation could lead to data compromise or account takeover within the context of the victim's session. Leadership should prioritize remediation because the library is likely embedded across multiple products, and the absence of a patch increases exposure until mitigations are applied.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting chart configuration inputs to trusted sources, sanitizing all user-supplied data that flows into Highcharts options (especially href/src fields), disabling export functionality or using a CSP that blocks inline scripts in exported documents, and ensuring exported SVG content is served with a restrictive Content-Security-Policy.

Threat Intelligence Overview

Prevalence
High
Highcharts is a very widely deployed enterprise JavaScript charting library
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

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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-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

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