CVE-2026-118247: Highcharts Dashboards / Grid Pro: `DataTable.setCell` and column writers treat `__proto__` as an existing column.
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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Highcharts Dashboardsto a version that resolves this vulnerability.Fixed in 4.2.2 - Upgrade
Upgrade
Highcharts Grid Proto a version that resolves this vulnerability.Fixed in 3.2.0
Event History
Frequently Asked Questions
Which deployments are realistically exposed?
Dashboards is affected from 1.0.0 through versions before 4.2.2, and Grid Pro is affected from 2.0.0 through versions before 3.2.0. Exposure depends on whether an untrusted party can influence a table or component column ID and trigger a cell, point, or API write.
What does an attacker need to exploit this issue?
The attacker needs control over both a column identifier and a value written through a single-cell writer. Relevant paths include DataTable.setCell, Dashboards connector write-back, and Grid Pro editing.
How do column aliases affect Dashboards exploitation?
In Dashboards versions that support column aliases, a literal __proto__ column ID is redirected by the alias map and does not reach the unsafe write path. An alias whose target is __proto__ does reach that path; later releases without aliases accept the unsafe ID directly.
What is the impact if exploitation succeeds?
The write can place integer-indexed values on Object.prototype or the Object constructor. Those inherited values can affect array and object reads and for-in enumeration across the page, potentially changing application control flow or disrupting rendering.
What versions resolve the issue?
Upgrade Dashboards to 4.2.2 or later, or Grid Pro to 3.2.0 or later.