Description
Vega is a visualization grammar, a declarative format for creating, saving, and sharing interactive visualization designs. Prior to version 5.26.0 of vega and 5.4.2 of vega-selections, the `vlSelectionTuples` function can be used to call JavaScript functions, leading to cross-site scripting.`vlSelectionTuples` calls multiple functions that can be controlled by an attacker, including one call with an attacker-controlled argument. This can be used to call `Function()` with arbitrary JavaScript and the resulting function can be called with `vlSelectionTuples` or using a type coercion to call `toString` or `valueOf`. Version 5.26.0 of vega and 5.4.2 of vega-selections fix this issue.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| vega | vega | < 5.26.0 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | vega.js | 5.28.0+ds+~cs5.3.0-1 | — |
| Debian 13 | vega.js | 5.28.0+ds+~cs5.3.0-1 | — |
| Debian 12 | vega.js | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | vega.js | No fix yet | — |
| Ubuntu 26.04 LTS | vega.js | No fix yet | — |
| Ubuntu 25.10 | vega.js | No fix yet | — |
| Ubuntu 24.04 LTS | vega.js | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | vega | < 5.26.0 | 5.26.0 | GHSA-mp7w-mhcv-673j |
| npm | vega-selections | < 5.4.2 | 5.4.2 | GHSA-mp7w-mhcv-673j |