# CVE-2025-65110: Vega XSS via vlSelectionTuples function array map calls

Source: https://junglewise.ai/threats/cve-2025-65110-vega-xss-via-vlselectiontuples-function-array-map-calls  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-01-05. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2025-65110 · Severity: high · CVSS 8.1 · Published 2026-01-05

Vega is a declarative language for data visualization used to create interactive charts and dashboards. This vulnerability allows an attacker to execute arbitrary JavaScript code in a user's browser when they open a malicious Vega specification, potentially compromising sensitive data and enabling unauthorized actions. The attack exploits unsafe function gadgets in the global scope to bypass Vega's expression security restrictions.

Vendors: [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

**Is CVE-2025-65110 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2025-65110 being exploited in the wild.

**How severe is CVE-2025-65110?** High severity, with a CVSS score of 8.1, published 5 January 2026.

**Which products and versions are affected?** vega-selections (npm) SEMVER:introduced=0,fixed=5.6.3.

**Is there a fix for CVE-2025-65110?** Yes. vega-selections (npm): upgrade to 5.6.3 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2025-65110 attacked?** It is attacked over the network.

**Am I affected by CVE-2025-65110?** Check whether you run vega-selections (npm) or Vega Project Vega at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- vega-selections (npm): upgrade to 5.6.3 or later

  ```sh
  npm install vega-selections@5.6.3
  ```


## Technical details

This is a cross-site scripting (XSS) vulnerability in the vlSelectionTuples function implementation within vega-selections. The root cause is insufficient validation of user-provided objects passed to vlSelectionTuples; the function unsafely calls a .map method on user-controlled objects without verifying the input is actually an array. An attacker can craft a malicious Vega JSON specification that abuses this to chain function gadgets (e.g., CanvasHandler.prototype.on via VEGA_DEBUG in the global scope) to ultimately invoke window.eval with attacker-controlled code. The vulnerability requires user interaction (opening a malicious Vega spec) and an application environment where Vega library instances or suitable function gadgets are exposed globally. The fix adds Array.isArray() validation before calling .map on untrusted input.

## Affected products

- Vega vega-selections <= 5.6.1, <= 6.1.0
- Vega Vega versions using vega-selections <= 5.6.1 or <= 6.1.0

## Identifiers

- CVE-2025-65110
- GHSA-829q-m3qg-ph8r

## Timeline

- 2026-01-05: disclosed: Advisory published
- 2026-01-05: patched: vega-selections 6.1.2 and 5.6.3 released with fixes

## References

- [https://github.com/vega/vega/security/advisories/GHSA-829q-m3qg-ph8r](https://github.com/vega/vega/security/advisories/GHSA-829q-m3qg-ph8r)

## Related threats

- [Vega cross-site scripting in vlSelectionTuples function](https://junglewise.ai/threats/cve-2025-25304-vega-cross-site-scripting-in-vlselectiontuples-function)
