Highcharts Coreに、エクスポートしたグラフでスクリプトが動く脆弱性
Summary
Highcharts Coreには、グラフのテキストに含まれるjavascript:のURLが、書き出したSVGに残ることで、利用者がリンクを開くとスクリプトが実行される脆弱性(CVE-2026-116796)があります。影響を受けるのは10.3.2から11.4.9まで、12.6.2まで、13.1.1までの版で、修正版は11.4.9、12.6.2、13.1.1です。Highchartsを利用しているなら、修正版への更新を検討してください。
AI summary
Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.
Highcharts Coreには、グラフのテキストに含まれるjavascript:のURLが、書き出したSVGに残ることで、利用者がリンクを開くとスクリプトが実行される脆弱性(CVE-2026-116796)があります。影響を受けるのは10.3.2から11.4.9まで、12.6.2まで、13.1.1までの版で、修正版は11.4.9、12.6.2、13.1.1です。Highchartsを利用しているなら、修正版への更新を検討してください。
Affected packages
| Ecosystem | Package | Affected | Fixed |
|---|---|---|---|
| highcharts | highcharts | — | — |
| npm | highcharts |
≥ 13.0.0, < 13.1.1 |
13.1.1 |
Original description The description as published by the source.
Impact
The filter applied to markup in text options checks href, src and a few similar attributes against an allowed-scheme list, but accepts xlink:href without that check, so an SVG anchor whose xlink:href is a javascript: URL passes the filter, whether or not the option is rendered with useHTML. In the live page the attribute is written without the XLink namespace, so browsers do not treat the anchor as a link there.
The attribute is preserved verbatim in the chart's serialised output: the SVG produced by the exporting module, including the default SVG download, declares the XLink namespace and contains the anchor, and so does the markup of the chart container. Any document that parses that output again, such as the downloaded SVG opened in a browser or a page that inlines exported or server-rendered chart markup, then holds a working link, and an attacker who controls the chart configuration can thereby run script in the origin of that document when a user activates the link.
Exploitation requires that untrusted data reach a text option such as the title, that the chart be exported or its markup be serialised and parsed again, and that a user activate the link.
Workarounds
Drop-in fix for all affected versions (10.3.2 - 13.1.0).
Add the below IIFE to run after Highcharts is loaded, before creating a chart.
!function(t){var e=t&&t.AST;if(e&&"function"==typeof e.filterUserAttributes&&!e.xlinkHrefPatched){var r=e.filterUserAttributes,n=Object.prot…
Source: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
References
- advisory nvd.nist.gov
- package github.com
- web github.com
- web github.com
- web github.com
- web github.com