{"schema":"threatline.record/2","record":{"id":"CVE-2026-118255","aliases":["GHSA-6hgp-fmhr-mrg4"],"summary":"Highcharts Grid: `javascript:` URL in credits.href runs script on click","details":"### Impact\nAn 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.\n\n### Workarounds\nPaste in after the Grid Pro module is imported, before a Grid is created.\n\n```javascript\nconst { AST } = Grid;\n\nfunction sanitize(options) {\n    const credits = options && options.credits;\n\n    if (credits && typeof credits.href === 'string') {\n        const filtered = AST.filterUserAttributes({ href: credits.href });\n\n        if (!filtered.href) {\n            delete credits.href;\n        }\n    }\n\n    return options;\n}\n\n// Both Grid.grid() and grid.update() funnel through loadUserOptions, so one\n// hook covers both entry points.\nconst { prototype } = Grid.Grid;\nconst loadUserOptions = prototype.loadUserOptions;\n\nprototype.loadUserOptions = function (options, ...rest) {\n    sanitize(options);\n    return loadUserOptions.call(this, options, ...rest);\n};\n```\n\n### Obtaining the patched version\nThe 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/grid-lite@3.2.0`. If you load Highcharts Grid from a CDN, use a versioned URL, for example `https://cdn.jsdelivr.net/npm/@highcharts/grid-lite@3.2.0/grid-lite.js`. For more on each installation method, see the [installation guide](https://www.highcharts.com/docs/grid/installation).","categories":["Libraries & packages"],"product":"@highcharts/dashboards","vendor":"highcharts","ecosystem":"npm","affected_ranges":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-6hgp-fmhr-mrg4","source_modified_at":"2026-10-28T19:57:51Z","fetched_at":"2026-10-28T20:58:01.013507Z","package":{"ecosystem":"npm","name":"@highcharts/dashboards"},"range":">= 3.2.0, <= 3.6.0"},{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-6hgp-fmhr-mrg4","source_modified_at":"2026-10-28T19:57:51Z","fetched_at":"2026-10-28T20:58:01.013507Z","package":{"ecosystem":"npm","name":"@highcharts/grid-pro"},"range":">= 2.0.0, <= 3.1.0"},{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-118255","source_modified_at":"2026-10-28T18:17:14.543Z","fetched_at":"2026-10-28T20:58:01.013507Z","product":"highcharts","vendor":"highcharts","versions":[{"version":"< 13.0.0-beta.2","status":"affected"}],"defaultStatus":null},{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-118255","source_modified_at":"2026-10-28T18:17:14.543Z","fetched_at":"2026-10-28T20:58:01.013507Z","product":"dashboards","vendor":"@highcharts","versions":[{"version":">= 3.2.0, < 4.0.0","status":"affected"}],"defaultStatus":null},{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-118255","source_modified_at":"2026-10-28T18:17:14.543Z","fetched_at":"2026-10-28T20:58:01.013507Z","product":"grid-pro","vendor":"@highcharts","versions":[{"version":">= 2.0.0, < 3.2.0","status":"affected"}],"defaultStatus":null},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-6hgp-fmhr-mrg4","source_modified_at":"2026-10-28T20:15:05.452724193Z","fetched_at":"2026-10-28T20:58:01.013507Z","package":{"name":"@highcharts/dashboards","ecosystem":"npm","purl":"pkg:npm/%40highcharts/dashboards"},"ranges":[{"type":"SEMVER","events":[{"introduced":"3.2.0"},{"fixed":"4.0.0"}]}],"versions":[]},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-6hgp-fmhr-mrg4","source_modified_at":"2026-10-28T20:15:05.452724193Z","fetched_at":"2026-10-28T20:58:01.013507Z","package":{"name":"@highcharts/grid-pro","ecosystem":"npm","purl":"pkg:npm/%40highcharts/grid-pro"},"ranges":[{"type":"SEMVER","events":[{"introduced":"2.0.0"},{"fixed":"3.2.0"}]}],"versions":[]}],"fixed_versions":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-6hgp-fmhr-mrg4","source_modified_at":"2026-10-28T19:57:51Z","fetched_at":"2026-10-28T20:58:01.013507Z","package":{"ecosystem":"npm","name":"@highcharts/dashboards"},"version":"4.0.0"},{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-6hgp-fmhr-mrg4","source_modified_at":"2026-10-28T19:57:51Z","fetched_at":"2026-10-28T20:58:01.013507Z","package":{"ecosystem":"npm","name":"@highcharts/grid-pro"},"version":"3.2.0"},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-6hgp-fmhr-mrg4","source_modified_at":"2026-10-28T20:15:05.452724193Z","fetched_at":"2026-10-28T20:58:01.013507Z","package":{"name":"@highcharts/dashboards","ecosystem":"npm","purl":"pkg:npm/%40highcharts/dashboards"},"version":"4.0.0"},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-6hgp-fmhr-mrg4","source_modified_at":"2026-10-28T20:15:05.452724193Z","fetched_at":"2026-10-28T20:58:01.013507Z","package":{"name":"@highcharts/grid-pro","ecosystem":"npm","purl":"pkg:npm/%40highcharts/grid-pro"},"version":"3.2.0"}],"cvss":8.4,"severity":"High","kev":{"listed":false},"epss":{"probability":null,"percentile":null,"score_date":null},"published_at":"2026-10-28T18:17:14.543Z","modified_at":"2026-10-28T20:15:05.452724193Z","provenance":[{"source":"GitHub Advisory Database","url":"https://github.com/advisories/GHSA-6hgp-fmhr-mrg4","fetched_at":"2026-10-28T20:58:01.013507Z","source_modified_at":"2026-10-28T19:57:51Z"},{"source":"CVE List","url":"https://www.cve.org/CVERecord?id=CVE-2026-118255","fetched_at":"2026-10-28T20:58:01.013507Z","source_modified_at":"2026-10-28T18:17:14.543Z"},{"source":"OSV","url":"https://osv.dev/vulnerability/GHSA-6hgp-fmhr-mrg4","fetched_at":"2026-10-28T20:58:01.013507Z","source_modified_at":"2026-10-28T20:15:05.452724193Z"}],"sources":["GitHub Advisory Database","CVE List","OSV"],"references":[{"source":"CVE List","url":"https://github.com/highcharts/highcharts/security/advisories/GHSA-6hgp-fmhr-mrg4","tags":["x_refsource_CONFIRM"]},{"source":"CVE List","url":"https://github.com/highcharts/highcharts/pull/25351","tags":["x_refsource_MISC"]},{"source":"CVE List","url":"https://github.com/highcharts/highcharts/commit/45b74403acafbe9f621c4a343506721d9129e991","tags":["x_refsource_MISC"]},{"source":"CVE List","url":"https://github.com/highcharts/highcharts/releases/tag/grid-v3.2.0","tags":["x_refsource_MISC"]},{"url":"https://github.com/advisories/GHSA-6hgp-fmhr-mrg4","source":"GitHub Advisory Database"}],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"cve_state":"PUBLISHED","classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":"ecosystem","confidence":"heuristic","reviewed":false},"change_timestamp":"2026-10-28T20:15:05.452724193Z","content_hash":"0b9edf1b0882ff5d873ffe12f7432ead3919c26e234a86a5a1d21a16f84795ca"}}
