Vega Cross-Site Scripting (XSS) via expression abusing vlSelectionTuples function array map calls in environments with satisfactory function gadgets in the global scope
Description
Vega is a visualization grammar, a declarative format for creating, saving, and sharing interactive visualization designs. Prior to versions 6.1.2 and 5.6.3, applications meeting two conditions are at risk of arbitrary JavaScript code execution, even if "safe mode" expressionInterpreter is used. First, they use vega in an application that attaches both vega library and a vega.View instance similar to the Vega Editor to the global window, or has any other satisfactory function gadgets in the global scope. Second, they allow user-defined Vega JSON definitions (vs JSON that was is only provided through source code). This vulnerability allows for DOM XSS, potentially stored, potentially reflected, depending on how the library is being used. The vulnerability requires user interaction with the page to trigger. An attacker can exploit this issue by tricking a user into opening a malicious Vega specification. Successful exploitation allows the attacker to execute arbitrary JavaScript in the context of the application’s domain. This can lead to theft of sensitive information such as authentication tokens, manipulation of data displayed to the user, or execution of unauthorized actions on behalf of the victim. This exploit compromises confidentiality and integrity of impacted applications.Patched versions are available in vega-selections@6.1.2 (requires ESM) for Vega v6 and vega-selections@5.6.3 (no ESM needed) for Vega v5. As a workaround, do not attach vega or vega.View instances to global variables or the window as the editor used to do. This is a development-only debugging practice that should not be used in any situation where Vega/Vega-lite definitions can come from untrusted parties.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
vega-selectionsnpm | < 5.6.3 | 5.6.3 |
vega-selectionsnpm | >= 6.0.0, < 6.1.2 | 6.1.2 |
Affected products
1Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
3- github.com/advisories/GHSA-829q-m3qg-ph8rghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-65110ghsaADVISORY
- github.com/vega/vega/security/advisories/GHSA-829q-m3qg-ph8rghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.