Skip to main content

Highcharts JS EUVDEUVD-2026-112363

| CVE-2026-118249 HIGH
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-10-28 GitHub_M GHSA-gfvx-2c2g-38wq
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
    Craft point data with __proto__/constructor keys
  2. Delivery
    Application JSON.parses untrusted dataset
  3. Exploit
    setData builds column IDs from keys
  4. Execution
    Integer-indexed writes reach Object.prototype
  5. Impact
    Page-wide pollution disrupts rendering or alters app logic

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

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 the application feed attacker-controlled point data into a Highcharts series (e.g. a column series via setData or the data option) on versions 13.0.0-13.0.2, and that the data was produced by JSON.parse - this is essential because '__proto__' and 'constructor' survive JSON.parse as own enumerable keys, whereas in an object literal they would change the prototype instead and not trigger the flaw. No user interaction is needed beyond rendering the chart. Limiting factors that reduce realistic risk: the attacker must control the chart's data source (not inherent in Highcharts itself); only integer-indexed properties can be set this way (named properties cannot be reached); and the severity of any consequence beyond disrupted rendering and polluted for-in enumeration depends entirely on whether the consuming application's own code trusts prototype-inherited or out-of-range values.

Impact

This is a genuine but context-dependent client-side prototype pollution flaw (CWE-1321), not a drop-everything emergency. The input CVSS 4.0 vector scores it 7.2 (high) with AV:N/AC:L/AT:N/PR:L/UI:N and vulnerable-system VI:H/VA:H, VC:L - i.e. the severity is driven by integrity and availability of the rendering context, with only low confidentiality impact. No EPSS score and no CISA KEV status were provided, so there is no signal of widespread or active exploitation; vuln.today assigns a 'this_week' priority (not act_now/emergency), which matches a serious-but-not-critical posture. A public PoC reference exists (the vendor's jsfiddle live demo plus QUnit regression tests committed in the fix PR), but the input does not confirm it as a weaponized, working exploit, so this should be treated as 'a public PoC reference exists; it is not verified as working exploit code,' distinct from active exploitation. A key nuance: the given vector uses PR:L, but the real gate is not authentication to Highcharts - it is whether the application feeds attacker-controlled point data into the chart; in deployments that plot untrusted user- or API-supplied JSON, no privileges are effectively required. The impact ceiling is also application-dependent: the advisory explicitly says 'consequences beyond disruption depend on the consuming application,' so the baseline guaranteed effect is page-wide prototype pollution causing disrupted rendering or altered branching, with escalation possible only where downstream code trusts the polluted values. Note also an affected-range inconsistency across sources (see confidence_notes) that should be verified before scoping.

Exploit ScenarioDerived

An attacker who can influence the data a web application plots - for example a user-submitted dataset or an upstream API feeding chart series - crafts JSON containing '__proto__' or 'constructor' keys. When the app parses it with JSON.parse (which preserves those keys as own enumerable properties) and renders it in a Highcharts column series on versions 13.0.0-13.0.2, the write that builds the data columns lands integer-indexed properties on Object.prototype and the Object constructor, polluting every object on the page with no user interaction beyond rendering the chart. A public PoC reference exists (vendor jsfiddle demo and QUnit tests in the fix PR); it is not verified as working weaponized exploit code.

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

Prototype pollution in Highcharts JS 13.0.0 through 13.0.2 lets attacker-controlled series point data write integer-keyed properties onto Object.prototype and the Object constructor, which then surface in out-of-range index reads and for...in enumeration of every object on the page. No user interaction is required beyond rendering a chart built from those point objects, and the injected properties persist after the chart is constructed; the practical consequence runs from broken rendering to whatever the consuming application does with attacker-supplied inherited values. The issue is fixed in 13.1.0, is not listed in CISA KEV, and no working exploit code is confirmed - the vendor advisory does publish a live JSFiddle demo for testing, and the current priority label is this_week rather than an emergency call.

RemediationAI

Upgrade to Highcharts 13.1.0 or later - the vendor's npm example installs highcharts@13.1.1, and CDN users should switch to a versioned URL such as https://code.highcharts.com/13.1.1/highcharts.js rather than an unversioned build; the fix is documented in GHSA-gfvx-2c2g-38wq and shipped via PR 25321 (commit d3357705c8f348904441327e32f50ab528c3a205). If upgrading immediately is not possible, the advisory publishes a drop-in IIFE for affected versions 6.1.0 through 13.0.2 that must be loaded after Highcharts: it hooks Highcharts.Point.prototype.optionsToObject to strip own enumerable __proto__ and constructor keys from point options and hooks setNestedProperty to reject those segments in dotted keys, trading away any legitimate data key literally named __proto__ or constructor and requiring the shim to be re-verified after every Highcharts upgrade. Independent of either fix, stop passing untrusted JSON straight into series data: validate or strip __proto__, constructor and prototype keys from point objects server-side or before calling setData, since exploitation requires that the application's chart data source be attacker-controlled.

Affected VersionsENISA

highcharts 13.0.0, < 13.1.0

Affected Packages

npm highcharts fix: 13.1.0

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

The flaw is a CWE-1321 prototype pollution in Highcharts' series column construction, the mechanism that builds the column-oriented data table backing each series. Instead of sanitizing point option keys, the library used them directly as data column IDs, so keys such as __proto__ and constructor resolved to shared objects and the write that creates a column landed on Object.prototype or on the Object constructor itself. The critical precondition is that the point data came through JSON.parse: that parser keeps __proto__ and constructor as own enumerable properties, whereas an object literal would instead reassign the prototype and never trigger the path. A second code path expands dotted keys through setNestedProperty, which walked into whatever a key segment resolved to (Object.prototype for __proto__), and a third used a truthiness test that accepted inherited members such as columns.toString, letting a write reach Object.prototype.toString. Only integer-indexed properties can be set this way - named properties are unreachable - but those integer keys are visible to any code that reads an out-of-range index or enumerates an object with for...in, which is why the assessed vector carries a scope change (S:C) and high integrity/availability impact: the chart's own rendering can fail, and unrelated application logic can take branches based on attacker-supplied values.

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:N/PR:L/UI:N/VC:L/VI:H/VA:H/SC:L/SI:L/SA:L
vuln.today AI 10.0 CRITICAL

Data is network-deliverable and triggers on render (AC:L, UI:N); the gate is controlling chart data, not a Highcharts privilege, so PR:N; polluting global Object.prototype changes scope (S:C) with high integrity/availability impact and low confidentiality.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 28, 2026 - 19:03 EUVD
CVE Published
Oct 28, 2026 - 17:57 cve.org
HIGH 7.2

DescriptionCVE.org

Highcharts JS is a JavaScript charting library based on SVG. From 13.0.0 until 13.1.0, Highcharts builds series data columns by using point option keys directly as column IDs. Own enumerable __proto__ and constructor keys from parsed point objects can therefore direct integer-indexed writes to Object.prototype or the Object constructor. The inherited values affect reads and for-in enumeration across the page and can disrupt rendering or alter consuming application behavior without user interaction beyond rendering the chart. This issue is fixed in 13.1.0.

Technical POC Analysis

CWE-1321 (Prototype Pollution).

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 versions 13.0.0-13.0.2 are affected by a prototype pollution vulnerability (CVE-2026-118249) that could allow an attacker to inject properties into core JavaScript objects when a chart is rendered, potentially compromising the integrity of any web application using these versions. While no active exploitation has been confirmed, the broad use of Highcharts in dashboards and customer-facing products means teams should prioritize remediation this week to prevent downstream logic manipulation or rendering failures.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include sanitizing all chart data inputs (especially series point properties) to reject integer-keyed properties, implementing Content Security Policy (CSP) to restrict script execution, and isolating chart rendering contexts where feasible; however, the primary remediation is to upgrade to version 13.1.0 as soon as possible.

Threat Intelligence Overview

Prevalence
High
widely deployed commercial JS charting library, though vulnerable range is narrow
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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