Skip to main content

Highcharts JS CVE-2026-118251

| EUVDEUVD-2026-112365 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-28 GitHub_M GHSA-5793-x2q3-c3q7
8.4
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 credits.href config
  2. Delivery
    Victim loads chart in authenticated page
  3. Exploit
    User clicks credits label
  4. Execution
    Href assigned to window.location executes script
  5. Impact
    Steal session tokens or act as user in 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, simultaneous prerequisites per the GHSA advisory: (1) attacker-controlled or otherwise untrusted data must reach the chart's credits.href configuration option; and (2) a user must actually click the credits label (the default 'Highcharts.com' credit link, or a customized one). The javascript: URL is then assigned to window.location and executes in the hosting page's origin. Applies to Core plus Highcharts Stock, Maps and Gantt because they ship from the same package; affected versions 5.0.0 through 13.0.2, fixed in 11.4.9, 12.6.1 and 13.1.0. Limiting factors: the credits-label click is an uncommon, deliberate user action, and exploitation is impossible unless the deployment lets untrusted input populate chart config - static/trusted configs are not exposed. A drop-in IIFE workaround that filters credits.href against the allow list exists for all affected versions, but the vendor positions upgrading as the proper fix.

Impact

This is a DOM-based XSS (CWE-79) in Highcharts' credits.href handling, rated 8.4 (CVSS 4.0) by the reporter with vector AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H. The vuln.today decision label is this_week, indicating elevated but not emergency priority. Key signals are mixed: there is NO CISA KEV listing and NO EPSS score in the provided data, so active-exploitation and statistical-likelihood signals are both absent - this is 'no public exploit identified at time of analysis' in the strict sense, though a vendor JSFiddle demo and a committed unit test demonstrate the trigger. The practical risk is gated by two real prerequisites that the raw CVSS score obscures: an attacker must get untrusted data into the chart configuration (credits.href), AND a legitimate user must click the small credits label - an uncommon action that meaningfully limits opportunistic, at-scale exploitation. The reporter's VC:H/VI:H impact rating is aggressive; true impact depends on what the hosting page's origin exposes (session tokens, authenticated actions), so it is better treated as conditionally high rather than guaranteed-high. Net: a legitimate, patch-this-sprint issue for anyone feeding user-controllable data into Highcharts config, but not a drop-everything internet-wide worm candidate given the config-injection + deliberate-click requirements.

Exploit ScenarioDerived

An application renders a Highcharts chart whose credits.href is populated from attacker-influenced data (e.g., a tenant/profile field or saved dashboard config). The attacker sets credits.href to 'javascript:...'; when any user viewing the chart clicks the credits label, the payload runs in the hosting page's origin, enabling session/cookie theft or actions performed as that user. A vendor-provided JSFiddle demo and a QUnit test reproduce the trigger, but no weaponized in-the-wild exploit is reported.

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 JS (Core, plus the Stock, Maps and Gantt builds shipped from the same package) affects versions 5.0.0 through 13.0.2: the chart's credits.href option is assigned directly to window.location when the credits label is clicked, with no check against the library's allowed-scheme list, so a javascript: URL supplied through chart configuration executes in the origin of the page hosting the chart. Exploitation needs two things at once - untrusted data reaching the credits.href option (for example a chart rendered from user-supplied config) and a user actually clicking the credits label - which limits exposure to deployments that build chart options from untrusted input; static or trusted configurations are not exploitable. The reporter scored this 8.4 under CVSS 4.0, an independent assessment puts it at CVSS 3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N, no confirmed in-the-wild exploitation or KEV listing is present, and the vendor has released fixes in 11.4.9, 12.6.1 and 13.1.0 plus a drop-in workaround IIFE for older versions.

RemediationAI

Vendor-released patch: upgrade to 11.4.9, 12.6.1 or 13.1.0 depending on the release branch you track (13.1.0 is the current fixed line; the advisory's npm example shows npm install highcharts@13.1.1). CDN users must switch to a versioned URL such as https://code.highcharts.com/13.1.1/highcharts.js rather than an unversioned latest alias. The upstream fix is PR https://github.com/highcharts/highcharts/pull/25315, commit 9534773d0f41400aac0945bf8aaebc38dfc72aff, which routes credits.href through AST.filterUserAttributes and raises error 33 for disallowed schemes. For versions 5.0.0 through 13.0.2 that cannot be upgraded immediately, the vendor publishes a drop-in IIFE workaround (referenced in GHSA-5793-x2q3-c3q7 and testable at https://jsfiddle.net/BlackLabel/6a09ws1f/) that must be loaded after Highcharts but before any chart is created; it wraps Chart.prototype.addCredits and deletes any credits.href that does not start with an entry from Highcharts.AST.allowedReferences, so the trade-off is that legitimate custom credit links with unusual schemes will silently stop rendering as links. Alternatively, stop passing untrusted data into the credits option at all - hard-code or omit credits.href in charts whose options are built from user input - which removes the sink without affecting other features, though the vendor positions upgrading as the only complete fix. No public working exploit code is known, so remediation can follow normal release cadence (priority this_week) rather than emergency change control.

Affected VersionsENISA

highcharts 12.0.0, < 12.6.1
highcharts < 11.4.9
highcharts 13.0.0, < 13.1.1

Affected Packages

npm highcharts fix: 11.4.9, 12.6.1, 13.1.0, 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 charts as SVG in the browser and draws a small "credits" label (by default a Highcharts.com link) in the chart corner. The credits configuration object exposes href and text, and in the affected code path the click handler for that label performs win.location.href = creds.href with the caller-supplied string, bypassing the library's own sanitisation helper. Highcharts maintains an allow list of reference prefixes (Highcharts.AST.allowedReferences - https://, http://, mailto:, /, ../, ./, #) used elsewhere for user-supplied attributes; the credits URL simply was not run through it, which is the CWE-79 root cause: a DOM-based XSS where a javascript: scheme in a navigational sink runs script in the hosting page's origin. The vendor's fix in ts/Core/Chart/Chart.ts pipes creds.href through AST.filterUserAttributes at credits-add time and navigates to the filtered value, emitting Highcharts error code 33 for a disallowed URL; the accompanying unit test asserts both that the warning fires and that window state is not modified after a synthetic click on the credits element. Because the flaw sits in the core chart class, the Stock, Maps and Gantt distributions are equally affected since they ship from the same npm package and bundle.

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

Network-delivered DOM XSS triggered by clicking credits (UI:R); untrusted-config injection is a precondition not a privilege (PR:N); script in page origin crosses component scope (S:C) with page-dependent C/I impact, hence Low.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/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
None
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 - 19:03 EUVD
CVE Published
Oct 28, 2026 - 18:02 cve.org
HIGH 8.4

DescriptionCVE.org

Highcharts JS is a JavaScript charting library based on SVG. Prior to 11.4.9, 12.6.1, and 13.1.0, Highcharts assigns credits.href to the window location when the credits label is clicked without checking the URL against the allowed-scheme list. An attacker who controls chart configuration can provide a javascript URL and run script in the origin of the hosting page when a user clicks the credits label. Highcharts Stock, Maps, and Gantt are included because they ship from the same package. This issue is fixed in 11.4.9, 12.6.1 and 13.1.0.

Technical POC Analysis

CWE-79, DOM-based flavour: a javascript: URI is accepted as a navigation target and executed in the hosting page's origin.

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 JS library versions 5.0.0 through 13.0.2 contain a cross-site scripting vulnerability that allows an attacker to execute arbitrary JavaScript in the context of a victim's browser session if untrusted data reaches chart configuration and a user clicks the credits link. This affects any application that dynamically builds Highcharts options from user-supplied input, potentially compromising user data and session integrity. Leadership should care because this could lead to data theft or unauthorized actions within affected web applications, though exploitation requires specific conditions.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
High
one of the most widely used commercial/open JS charting libraries
Threat Intel
1
1 source
Social Media
1
Sightings
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
Medium

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