CVE-2025-65110

Source
https://cve.org/CVERecord?id=CVE-2025-65110
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-65110.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2025-65110
Aliases
Downstream
Published
2026-01-05T21:22:35.941Z
Modified
2026-03-14T12:44:29.797747Z
Severity
  • 8.1 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N CVSS Calculator
Summary
Vega Cross-Site Scripting (XSS) via expression abusing vlSelectionTuples function array map calls in environments with satisfactory function gadgets in the global scope
Details

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.

Database specific
{
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-79"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/65xxx/CVE-2025-65110.json"
}
References

Affected packages

Git / github.com/vega/vega

Affected ranges

Type
GIT
Repo
https://github.com/vega/vega
Events

Affected versions

v6.*
v6.0.0
v6.1.0
v6.1.1

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-65110.json"