Description
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 products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| highcharts | highcharts | < 13.1.0 | — |
| @highcharts | dashboards | >= 1.0.0, < 4.2.3 | — |
| @highcharts | grid-pro | >= 2.0.0, < 3.2.0 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | @highcharts/dashboards | >= 1.0.0, < 4.2.2 | 4.2.2 | GHSA-c75x-9x9h-28rm |
| npm | @highcharts/grid-pro | >= 2.0.0, < 3.2.0 | 3.2.0 | GHSA-c75x-9x9h-28rm |
References
- https://github.com/highcharts/highcharts/security/advisories/GHSA-c75x-9x9h-28rm
- https://github.com/highcharts/highcharts/commit/02dd9349aeb6f4cc9c98806120d917ed316b4c74
- https://github.com/highcharts/highcharts/releases/tag/dashboards-v4.2.2
- https://github.com/highcharts/highcharts/releases/tag/grid-v3.2.0