Highcharts: chart text can run scripts when exported SVG is opened
Someone who can put text into a chart can hide a script link inside it. If a user opens the exported chart file and clicks that link, the script runs in their browser.
| Severity | HighCVSS 7.2 of 10 |
|---|---|
| Being exploited? | UnclearNo reports either way yet |
| Fix available? | Yes11.4.9, 12.6.2, 13.1.1. Workaround for affected versions: add the provided filter patch that removes xlink:href values without an allowed scheme, run after Highcharts loads. · since 28 Oct 2026 |
| How sure is this? | Official, 2 sourcesBacked by an official source |
How the attack works simplified
- 1AttackerSupplies malicious chart text
- 2Chart outputxlink:href javascript URL kept in SVG
- 3Export or inlineSVG saved or embedded in a page
- 4User clicks linkAnchor now works in the document
- 5Script runsCode runs in document origin
- ResultScript runs in the user's document origin
What happened
Highcharts' text-option filter checks href and src attributes for allowed URL schemes but skips xlink:href, so SVG anchors with javascript: URLs survive serialisation and become working links when the exported or server-rendered SVG is parsed again.
Are you affected?
You are affected if you use Highcharts 10.3.2 to before 11.4.9, 12.0.0 to before 12.6.2, or 13.0.0 to 13.1.0 and chart text includes untrusted data, and exported or server-rendered SVG is re-parsed or inlined in a page.
| Package / product | Affected versions | Fixed in |
|---|---|---|
| highcharts · npm | >= 10.3.2, < 11.4.9 | 11.4.9 |
| highcharts · npm | >= 12.0.0, < 12.6.2 | 12.6.2 |
| highcharts · npm | >= 13.0.0, <= 13.1.0 | 13.1.1 |
What to do
- Upgrade highcharts to 11.4.9, 12.6.2 or 13.1.1 (for example: npm install highcharts@13.1.1)
- If you cannot upgrade yet, load the published filter workaround right after Highcharts and before creating any chart
- Do not place untrusted user input into chart titles or other text options until patched
Timeline
- 28 Oct 2026, 18:17 UTCPublicly disclosed
- 28 Oct 2026, 18:17 UTCReported by NVD · NVD
- 28 Oct 2026, 18:17 UTCPicked up by Zero Radar
- 28 Oct 2026, 19:55 UTCGitHub Advisory reported on it · GitHub Advisory
- 28 Oct 2026, 19:55 UTCFixed version published: highcharts 11.4.9, highcharts 12.6.2, highcharts 13.1.1 · GitHub Advisory
Sources 2 reports, oldest first
Official vendor, government CERT or advisory database
- CVE-2026-116796NVD · 28 Oct 2026, 18:17 UTC
- Highcharts Core: `javascript:` URL in an `xlink:href` attribute survives text filtering and reaches exported chartsGitHub Advisory · 28 Oct 2026, 19:55 UTC
Technical details
- ID
- CVE-2026-116796 · GHSA-mw4f-gj5x-6xr4
- CVSS
- 7.2 / 10
- Disclosed
- 28 Oct 2026, 18:17 UTC
- On Zero Radar
- 28 Oct 2026, 18:17 UTC (1 min after disclosure)
- Last change
- 28 Oct 2026, 19:55 UTC
The plain-language parts and the attack diagram were written by an AI model (anthropic/claude-haiku-5.5) from the sources above. Facts like versions, exploitation and dates come from the sources themselves. How Zero Radar works