Skip to content

← Public intelligence

npm package

@highcharts/dashboards

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

7 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. High, CVSS 8.4npmAmendedPublished

    Highcharts Grid: javascript: URL in credits.href runs script on click

    CVE-2026-118255 · GHSA-6hgp-fmhr-mrg4

    Affected
    • npm @highcharts/dashboards >= 3.2.0, < 4.0.0
    Fixed in
    4.0.0· Vendor fix available
    Issue
    Impact An attacker who controls the Grid configuration can set `credits.href` to a `javascript:` URL. The value is not validated against an allowed-scheme list before it is applied to the credits link, so activating that link runs attacker-supplied script in the origin of the page hosting the Grid. Exploitation requires that untrusted data reach the Grid configuration and that a user activate the credits link. Script running this way has the same access to page data, storage and session state as the hosting application. Workarounds Paste in after the Grid Pro module is imported, before a Grid is created. ```javascript const { AST } = Grid; function sanitize(options) { const credits = options && options.credits; if (credits && typeof credits.href === 'string') { const filtered = AST.filterUserAttributes({ href: credits.href }); if (!filtered.href) { delete credits.href; } } return options; } // Both Grid.grid() and grid.update() funnel through loadUserOptions, so one // hook…

    Recommended action: Upgrade to 4.0.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  2. High, CVSS 8.4npmAmendedPublished

    Highcharts Dashboards parses fullscreen labels as HTML

    CVE-2026-118253 · GHSA-58g7-7f52-h92c

    Affected
    • npm @highcharts/dashboards >= 1.0.0, < 4.2.3
    Fixed in
    4.2.3· Vendor fix available
    Issue
    Impact The edit mode fullscreen labels are parsed as HTML when the corresponding control is rendered. An attacker who controls the Dashboards language options can supply markup carrying event handlers, which then execute in the origin of the page hosting the dashboard. Exploitation requires that untrusted data reach the Dashboards language configuration and that the affected control be rendered. Script running this way has the same access to page data, storage and session state as the hosting application. Workarounds Until you can upgrade, replace `Fullscreen.prototype.setButtonText` atapplication startup. The replacement is the original method with `textContent` in place of `innerHTML`. If you install Dashboards from npm Import the module once, before any board is created. ```js import Fullscreen from '@highcharts/dashboards/es-modules/Dashboards/EditMode/Fullscreen.js'; Fullscreen.prototype.setButtonText = function () { const editMode = this.board.editMode, button =…

    Recommended action: Upgrade to 4.2.3 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  3. High, CVSS 8.4npmAmendedPublished

    Highcharts Dashboards parses sidebar component labels as HTML

    CVE-2026-118252 · GHSA-rcqf-f6h2-ccg9

    Affected
    • npm @highcharts/dashboards >= 1.0.0, < 4.2.3
    Fixed in
    4.2.3· Vendor fix available
    Issue
    Impact The component language strings shown in the edit mode sidebar are parsed as HTML rather than inserted as text. An attacker who controls those language options can supply markup carrying event handlers, which execute in the origin of the page hosting the dashboard once the sidebar renders the affected labels. Exploitation requires that untrusted data reach the Dashboards language configuration and that a user open the edit mode sidebar. Workarounds Until you can upgrade, patch `EditMode` once at application startup. The hook runs before the sidebar is built, so the labels are already harmless by the time they are rendered. Assigning a string to `textContent` and reading back `innerHTML` turns any markup into literal text, which is exactly what the fixed version renders. After importing the module, use this code snipped once, before any board is created. ```js { const EditMode = window.Dashboards?.EditMode; const escapeHTML = (text) => text .replace(/&/g, '&amp;')…

    Recommended action: Upgrade to 4.2.3 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  4. High, CVSS 8.5npmAmendedPublished

    Highcharts Grid Pro: cell-renderer attributes map written with raw setAttribute

    CVE-2026-116797 · GHSA-5ghw-9mgr-jvx2

    Affected
    • npm @highcharts/dashboards >= 3.6.0, < 4.0.0
    Fixed in
    4.0.0· Vendor fix available
    Issue
    Impact The input-type cell renderers copy every entry of the renderer's `attributes` option onto the input or select element they create, without checking the attribute names. An attacker who controls the Grid configuration can supply entries under a column's `cells.renderer.attributes` or `cells.editMode.renderer.attributes` whose names are event handlers, and those handlers execute in the origin of the page hosting the Grid. A view renderer places the handler on the input rendered in every row of the column as soon as the Grid renders; an edit-mode renderer places it on the input created when a cell enters edit mode, and that input is focused immediately, so a `focus` handler runs as soon as the user starts editing. Exploitation requires that untrusted data reach the Grid configuration and that a user hover over or focus one of the rendered inputs, or begin editing a cell. The Pro DataGrid that shipped inside the Dashboards package is included. Workarounds If your column…

    Recommended action: Upgrade to 4.0.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  5. High, CVSS 8.6npmAmendedPublished

    Highcharts Dashboards: chartConstructor is an unchecked lookup into the Highcharts namespace

    CVE-2026-118245 · GHSA-grj7-r4jv-pw9j

    Affected
    • npm @highcharts/dashboards >= 1.0.0, < 4.2.2
    Fixed in
    4.2.2· Vendor fix available
    Issue
    Impact 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. Workarounds If your board configuration comes from a source you do not fully control, paste this snippet right after importing libraries: ```ts (function () { const HighchartsComponent = Dashboards &&…

    Recommended action: Upgrade to 4.2.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  6. Medium, CVSS 6.9npmAmendedPublished

    Highcharts Dashboards / Grid Pro: DataTable.setCell and column writers treat __proto__ as an existing column.

    CVE-2026-118247 · GHSA-c75x-9x9h-28rm

    Affected
    • npm @highcharts/dashboards >= 1.0.0, < 4.2.2
    Fixed in
    4.2.2· Vendor fix available
    Issue
    Impact When a single cell value is written to a data table, the column id is used as a key on the table's column collection without filtering, so a column id of `proto` resolves to `Object.prototype`, is taken for an existing column, and the write lands at the row index on `Object.prototype`; a column id of `constructor` writes onto the `Object` constructor in the same way. In Dashboards releases that still supported column aliases, the id is first resolved through the alias map, so a literal `proto` id is redirected harmlessly there, while an alias whose target is `proto`, which the connector's data table options accept, reaches the same write. An attacker who controls the column id can thereby set integer-keyed properties on `Object.prototype`, one per row index, holding the written value; named properties cannot be reached through these paths, because the row index is a number. The integer keys still affect every object in the page: reading an out-of-range index on…

    Recommended action: Upgrade to 4.2.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  7. Medium, CVSS 5.3npmAmendedPublished

    Highcharts Dashboards: __proto__ data table id writes sync listeners to Object.prototype

    CVE-2026-118243 · GHSA-jqgh-w3cc-7jqw

    Affected
    • npm @highcharts/dashboards >= 1.0.0, < 4.2.2
    Fixed in
    4.2.2· Vendor fix available
    Issue
    Impact The data cursor keeps its listener and state bookkeeping in plain objects keyed by data table id, so a table id of `proto` supplied in the `dataPool` connector configuration resolves to `Object.prototype` when a sync registers its listeners, and the registration creates a property on `Object.prototype` named after the sync state and holding the internal listener array. The property name begins with a state prefix fixed by the library, to which the sync `group` option can append an attacker-chosen suffix, and its value is the library's own listener array, but the property is enumerable and visible on every object in the page, and emitting a lasting state for that table id then throws, so syncs that keep lasting states, such as `extremes`, stop working. Exploitation requires that untrusted data reach the Dashboards configuration and that a sync such as `highlight` or `extremes` be enabled on a component using that table, which the same configuration can do. No user…

    Recommended action: Upgrade to 4.2.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →