{"id":"CVE-2026-118255","aliases":["GHSA-6hgp-fmhr-mrg4"],"title":"Highcharts Grid: javascript: URL in credits.href runs script on click","titleSource":"GitHub_M","descriptionSource":"OSV","declaredSeverity":"HIGH","description":"### 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).","severity":"high","score":8.4,"published":"2026-10-28T18:17:14.543Z","modified":"2026-10-28T20:15:05.452Z","withdrawn":false,"knownExploited":false,"affected":[{"ecosystem":"npm","name":"@highcharts/dashboards","sources":[{"name":"OSV · GHSA-6hgp-fmhr-mrg4","url":"https://osv.dev/vulnerability/GHSA-6hgp-fmhr-mrg4"}],"ranges":[{"events":[{"introduced":"3.2.0"},{"fixed":"4.0.0"}],"type":"SEMVER"}],"versions":[],"fixed":["4.0.0"]},{"ecosystem":"npm","name":"@highcharts/grid-pro","sources":[{"name":"OSV · GHSA-6hgp-fmhr-mrg4","url":"https://osv.dev/vulnerability/GHSA-6hgp-fmhr-mrg4"}],"ranges":[{"events":[{"introduced":"2.0.0"},{"fixed":"3.2.0"}],"type":"SEMVER"}],"versions":[],"fixed":["3.2.0"]}],"sourceAffected":[],"references":["https://github.com/highcharts/highcharts/security/advisories/GHSA-6hgp-fmhr-mrg4","https://github.com/highcharts/highcharts/pull/25351","https://github.com/highcharts/highcharts/commit/45b74403acafbe9f621c4a343506721d9129e991","https://github.com/highcharts/highcharts/releases/tag/grid-v3.2.0","https://github.com/highcharts/highcharts"],"sources":[{"name":"CVE","id":"CVE-2026-118255","modified":"2026-10-28T18:17:14.543Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-118255"},{"name":"OSV","id":"GHSA-6hgp-fmhr-mrg4","modified":"2026-10-28T20:15:05.452724193Z","url":"https://osv.dev/vulnerability/GHSA-6hgp-fmhr-mrg4"}],"assessments":[{"source":"GitHub_M","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N","score":8.4},{"source":"OSV","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N","score":8.4}],"cve":{"records":[{"id":"CVE-2026-118255","source":"GitHub_M","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-10-27T20:13:55.314Z","published":"2026-10-28T18:17:14.543Z","modified":"2026-10-28T18:17:14.543Z"}],"publishers":[{"name":"GitHub_M","role":"CNA","organizationId":"a0819718-46f1-4df5-94e2-005712e83aaa","modified":"2026-10-28T18:17:14.543Z"}],"references":[{"url":"https://github.com/highcharts/highcharts/security/advisories/GHSA-6hgp-fmhr-mrg4","tags":["x_refsource_CONFIRM"],"source":"GitHub_M"},{"url":"https://github.com/highcharts/highcharts/pull/25351","tags":["x_refsource_MISC"],"source":"GitHub_M"},{"url":"https://github.com/highcharts/highcharts/commit/45b74403acafbe9f621c4a343506721d9129e991","tags":["x_refsource_MISC"],"source":"GitHub_M"},{"url":"https://github.com/highcharts/highcharts/releases/tag/grid-v3.2.0","tags":["x_refsource_MISC"],"source":"GitHub_M"}],"weaknesses":[{"id":"CWE-79","description":"CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","source":"GitHub_M"}],"applicability":[],"prioritization":[]},"products":[{"vendor":"highcharts","name":"highcharts","platforms":[],"versions":[{"version":"< 13.0.0-beta.2","status":"affected"}],"cpes":[],"source":"GitHub_M","url":"https://www.cve.org/CVERecord?id=CVE-2026-118255"},{"vendor":"@highcharts","name":"dashboards","platforms":[],"versions":[{"version":">= 3.2.0, < 4.0.0","status":"affected"}],"cpes":[],"source":"GitHub_M","url":"https://www.cve.org/CVERecord?id=CVE-2026-118255"},{"vendor":"@highcharts","name":"grid-pro","platforms":[],"versions":[{"version":">= 2.0.0, < 3.2.0","status":"affected"}],"cpes":[],"source":"GitHub_M","url":"https://www.cve.org/CVERecord?id=CVE-2026-118255"}],"remediation":[],"observedAt":"2026-10-29T14:59:08.437Z","kev":{"status":"not-listed","checkedAt":"2026-10-31T14:15:35.655Z"},"coverage":[{"source":"NVD","status":"no-result","checkedAt":"2026-10-28T19:00:30.895Z","attemptedAt":"2026-10-28T19:00:30.895Z"},{"source":"GHSA","status":"no-result","checkedAt":"2026-10-28T19:00:31.282Z","attemptedAt":"2026-10-28T19:00:31.282Z"},{"source":"EUVD","status":"available","checkedAt":"2026-10-28T19:00:31.282Z","attemptedAt":"2026-10-28T19:00:31.282Z"},{"source":"EPSS","status":"no-result","checkedAt":"2026-10-28T19:00:31.074Z","attemptedAt":"2026-10-28T19:00:31.074Z"}],"evidence":[{"source":"ENISA EUVD","id":"EUVD-2026-112357","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-112357","modified":"Oct 28, 2026, 6:17:14 PM","score":8.4,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N","checkedAt":"2026-10-28T19:00:31.282Z"}],"aiSummary":{"text":"Highcharts Grid versions before 13.0.0-beta.2, @highcharts/dashboards versions 3.2.0 to less than 4.0.0, and @highcharts/grid-pro versions 2.0.0 to less than 3.2.0 are affected by a vulnerability where an attacker controlling the Grid configuration can set credits.href to a javascript: URL, allowing script execution on click. Exploitation requires untrusted data in the Grid configuration and user activation of the credits link.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-10-30T09:08:08.172Z","sources":[{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2026-118255"},{"name":"OSV","url":"https://osv.dev/vulnerability/GHSA-6hgp-fmhr-mrg4"}]}}