Skip to main content

Highcharts Dashboards EUVDEUVD-2026-112310

| CVE-2026-118247 MEDIUM
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-10-28 GitHub_M GHSA-c75x-9x9h-28rm
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Inject untrusted value as table/component column ID
  2. Delivery
    Trigger DataTable.setCell via connector write-back or cell edit
  3. Exploit
    Write integer-keyed value onto Object.prototype/constructor
  4. Execution
    Polluted prototype corrupts array/object reads and for-in enumeration
  5. Impact
    Divert application control flow or disrupt rendering

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 the attacker to control a table or component column ID and to cause a cell, point, or API write. In Dashboards the unsafe write is reached by default through the Highcharts component's connector write-back (allowConnectorUpdate is enabled by default), taking the column ID from columnAssignment (or the series name in the earliest releases) when a point is updated; in Grid Pro it is reached through cell editing in earlier releases and remains reachable through the public DataTable API. Untrusted data must therefore reach the board or Grid configuration. In Dashboards releases that still support column aliases, a literal __proto__ ID is redirected harmlessly by the alias map, but an alias whose target is __proto__ (accepted by the connector's data table options) reaches the unsafe write; later alias-free releases accept a literal __proto__ or constructor ID directly. Limiting factors: only integer-keyed (row-index) properties can be set - named properties cannot be reached through these paths; a write action (point update or cell edit) is required; and impact beyond rendering disruption depends on how the consuming application reads polluted objects.

Impact

This is a medium-severity client-side prototype pollution issue (CVSS 4.0 base 6.9; CWE-1321). The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:L/VA:H/SC:L/SI:L/SA:L) describes a network-reachable but privilege- and interaction-dependent flaw: PR:L and UI:A mean the attacker must be able to get untrusted data into a table/component column ID and trigger a write, not a pure remote-unauthenticated hit. Impact skews toward availability (VA:H - rendering disruption/DoS of the page) with only limited integrity impact (VI:L) and explicitly no confidentiality impact (VC:N), consistent with the advisory noting that only integer-keyed properties can be set and named properties cannot be reached. The vuln.today decision label is 'this_month' (not act_now/emergency), a patch is available, and there is no CISA KEV listing and no EPSS score in the input, so there is no evidence of active exploitation. No public exploit code is referenced - only the vendor GHSA advisory and the fix commit. Net: a genuine defect worth patching on a normal cadence rather than an emergency; real-world severity is bounded because exploitation requires attacker-controlled column IDs plus a write path, and consequences beyond disruption depend entirely on how the consuming application reads polluted objects. Missing data to note explicitly: EPSS is absent (cannot gauge exploitation probability) and there is a fixed-version discrepancy across sources (see confidence notes).

Exploit ScenarioDerived

An attacker who can influence data that becomes a Highcharts DataTable column ID - for example through a Dashboards connector write-back (enabled by default via allowConnectorUpdate) or Grid Pro cell editing - supplies a column ID of __proto__ or constructor (or, in alias-supporting Dashboards releases, an alias whose target is __proto__) and triggers a point update or cell write. DataTable.setCell then writes an integer-indexed value onto Object.prototype or the Object constructor, polluting every object and array on the page so that out-of-range reads and for...in loops return attacker-supplied values, altering control flow or breaking rendering. No public exploit code is referenced; only the vendor advisory and fix commit are available.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 Dashboards (1.0.0 through 4.2.1) and Grid Pro (2.0.0 through 3.1.0) lets an attacker who controls a table or component column ID cause DataTable.setCell and related writers to store attacker-supplied values on Object.prototype or the Object constructor under integer (row-index) keys. The unsafe write is reachable by default in Dashboards through the Highcharts component's connector write-back (allowConnectorUpdate), taking the column ID from columnAssignment when a point is updated, and through cell editing and the public DataTable API in Grid Pro; a point update, cell edit, or API write is required, along with user interaction. Successful pollution influences array and object reads and for-in enumeration across the page, which can divert application control flow and disrupt rendering; the assessed impact is low integrity and high availability with no confidentiality impact, rated medium severity (CVSS 4.0 base 6.9, CWE-1321). No public exploit code and no confirmed active exploitation were identified at time of analysis, and vendor patches are available (Dashboards 4.2.2, Grid Pro 3.2.0).

RemediationAI

Upgrade to the patched releases: @highcharts/dashboards 4.2.2 or later (the vendor advisory's npm example installs @highcharts/dashboards@4.2.3, and EUVD likewise lists 4.2.3 as the fixed dashboards version, so use 4.2.3 unless your distribution channel confirms 4.2.2 already contains the fix) and @highcharts/grid-pro 3.2.0; when loading from a CDN, reference a versioned URL such as https://code.highcharts.com/dashboards/4.2.3/dashboards.js. If upgrading immediately is not possible, the vendor documents two measures that must be used together: strip '__proto__' and 'constructor' keys from untrusted column data before it is handed to a grid, board or DataTable (the only measure that covers the DataTable constructor), and, if column IDs from untrusted input reach setCell, changeColumnId or setColumns, monkey-patch those DataTable prototype methods at startup to reject the unsafe IDs and filter column keys - the trade-off is that both workarounds depend on the application correctly identifying every untrusted entry point, and the prototype patch must run after Grid or Dashboards is loaded. Details and reference code are in https://github.com/highcharts/highcharts/security/advisories/GHSA-c75x-9x9h-28rm.

Affected VersionsENISA

grid-pro 2.0.0, < 3.2.0
dashboards 1.0.0, < 4.2.3
highcharts < 13.1.0

Affected Packages

npm @highcharts/dashboards fix: 4.2.2
npm @highcharts/grid-pro fix: 3.2.0
euvd dashboards fix: 4.2.3
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

CWE-1321 (improperly controlled modification of object prototype attributes) applies here because Highcharts' DataTable stores columns in a plain object keyed by column ID and previously used truthiness and direct indexing rather than own-property checks. A column ID of __proto__ therefore resolves to Object.prototype, is mistaken for an existing column, and the single-cell write lands at the row index on Object.prototype; an ID of constructor writes onto the Object constructor in the same manner. Because the keys are numeric row indices, only integer-keyed properties can be injected - named properties cannot be reached through these paths - but those integer keys still alter reads of out-of-range indices on any array or plain object and appear in for-in enumeration of unrelated objects, so consuming code can take branches based on attacker-supplied data or fail to render. In Dashboards releases that still supported column aliases, a literal __proto__ ID is redirected harmlessly through the alias map, while an alias whose target is __proto__ (accepted via the connector's data table options) reaches the unsafe write; later alias-free releases accept the unsafe ID directly. The upstream fix in commit 02dd9349 adds explicit rejection of '__proto__' and 'constructor' plus Object.hasOwnProperty.call checks in DataTable.changeColumnId, setCell and column iteration, and equivalent guards in DataTableCore. Impact beyond disruption depends on how the consuming application reads the polluted objects.

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

Network-reachable but needs attacker-controlled column ID plus a write/interaction, so PR:L and UI:R; no confidentiality as only integer keys are set (C:N); low integrity, high availability from page-wide rendering disruption; prototype pollution affects code beyond the component, so S:C.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:L/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
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
High
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
Low

Lifecycle Timeline

1
Patch available
Oct 28, 2026 - 18:18 EUVD

DescriptionCVE.org

Highcharts JS is a JavaScript charting library based on SVG. From 1.0.0 until Dashboards 4.2.2, and from 2.0.0 until Grid Pro 3.2.0, Highcharts DataTable single-cell writers use an untrusted column ID as a key without rejecting __proto__ or constructor. DataTable.setCell, including Dashboards connector write-back and Grid Pro editing paths, can therefore write integer-indexed values onto Object.prototype or the Object constructor. In Dashboards releases with column aliases, a literal __proto__ ID is redirected by the alias map, while an alias targeting __proto__ reaches the unsafe write; later releases without aliases accept the unsafe ID directly. Those inherited values affect array and object reads and for-in enumeration throughout the page, which can alter application control flow or disrupt rendering. Exploitation requires control of the table or component column ID and a cell, point, or API write. This issue is fixed in Dashboards 4.2.2 and Grid Pro 3.2.0.

Threat Intelligence Overview

Prevalence
Medium
popular charting vendor, but Dashboards/Grid Pro are narrower commercial add-ons
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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Medium

Priority Score

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