Live › vulnerability › CVE-2026-118245
Go to dashboardHighcharts Dashboards looks up its chart constructor by name without checking it, so attacker-controlled dashboard configuration can pick a utility function instead. The attacker's options then get copied into the page as markup and event handlers, which run in the hosting page's origin when the board renders.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-28 18:34 UTC. All times on this page are UTC.
Applications that use Highcharts Dashboards and let someone other than the developers supply or edit dashboard configuration, so an attacker can control chartConstructor. Apps that only render fixed, developer-written dashboards are less exposed, though the sources do not state this explicitly.
| Product | Ecosystem | Affected | Fixed in |
|---|---|---|---|
| @highcharts/dashboards | npm | >= 1.0.0, <= 4.2.1 | 4.2.2 |
highcharts package version in package.json or the lockfile and see whether it is between 1.0.0 and 4.2.2highcharts to 4.2.2 or laterEach row is the first time that source carried this signal. The analyst’s rows are its own findings.
The Highcharts component uses the value of chartConstructor to select a function from the Highcharts namespace and invokes it with the component's container element and its chartOptions, without checking the value against the supported chart constructors. An attacker who controls the dashboard configuration can therefore name any other public member of that namespace; utility functions in that namespace copy the supplied options onto the container element as properties or attributes, so markup and event handlers carried in chartOptions land in the page and run in the origin of the page hosting the dashboard. Exploitation requires that untrusted data reach the Dashboards component configuration. No user interaction is required beyond rendering the board.
If your board configuration comes from a source you do not fully control, paste this snippet right after importing libraries:
(function () {
const HighchartsComponent =
Dashboards && Dashboards.HighchartsComponent;
if (!HighchartsComponent || !HighchartsComponent.prototype.createChart) {
return; // HighchartsComponent not loaded
}
const allowedConstructors = [
'chart',
'stockChart',
'mapChart',
'ganttChart'
];
const originalCreateChart = HighchartsComponent.prototype.createChart;
HighchartsComponent.prototype.createChart = function () {
if (allowedConstructors.indexOf(this.chartConstructor) === -1) {
this.chartConstructor = 'chart';
}
return originalCreateChart.apply(this, arguments);
};
}());
The patched releases are available from all the usual distribution channels. With npm, upgrade the affected package to the patched version listed above, for example npm install @highcharts/[email protected]. If you load Highcharts Dashboards from a CDN, use a versioned URL, for example https://code.highcharts.com/dashboards/4.2.2/dashboards.js. For more on each installation method, see the installation guide.
This page as .md · .json · in your agent: get_signal("CVE-2026-118245")
NVD data is provided by NIST and is public domain · GitHub Advisory Database, CC-BY 4.0. Posts quoted belong to their authors.