{"id":"CVE-2025-25304","state":"PUBLISHED","title":"Vega allows Cross-site Scripting via the vlSelectionTuples function","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.","publishedAt":"2025-02-14T19:28:00.388Z","updatedAt":"2025-02-14T19:44:24.152Z","severity":{"score":6.9,"label":"Medium","version":"4.0","vector":"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","source":"GitHub_M"},"assigner":"GitHub_M","products":["vega vega"],"affected":[{"vendor":"vega","product":"vega","versions":[{"version":"< 5.26.0","status":"affected"}]}],"references":["https://github.com/vega/vega/security/advisories/GHSA-mp7w-mhcv-673j","https://github.com/vega/vega/commit/9fb9ea07e27984394e463d286eb73944fa61411e","https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-selections/src/selectionTuples.js#L14"],"weaknesses":["CWE-79"],"ingestedAt":"2026-10-29T20:08:47.682Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/25xxx/CVE-2025-25304.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2025-25304","state":"PUBLISHED","datePublished":"2025-02-14T19:28:00.388Z","dateUpdated":"2025-02-14T19:44:24.152Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2025-02-06T17:13:33.124Z"},"containers":{"cna":{"title":"Vega allows Cross-site Scripting via the vlSelectionTuples function","descriptions":[{"lang":"en","value":"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":[{"vendor":"vega","product":"vega","versions":[{"version":"< 5.26.0","status":"affected"}]}],"references":[{"url":"https://github.com/vega/vega/security/advisories/GHSA-mp7w-mhcv-673j","name":"https://github.com/vega/vega/security/advisories/GHSA-mp7w-mhcv-673j","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/vega/vega/commit/9fb9ea07e27984394e463d286eb73944fa61411e","name":"https://github.com/vega/vega/commit/9fb9ea07e27984394e463d286eb73944fa61411e","tags":["x_refsource_MISC"]},{"url":"https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-selections/src/selectionTuples.js#L14","name":"https://github.com/vega/vega/blob/b45cf431cd6c0d0c0e1567f087f9b3b55bc236fa/packages/vega-selections/src/selectionTuples.js#L14","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"LOW","subIntegrityImpact":"LOW","subAvailabilityImpact":"NONE","baseScore":6.9,"baseSeverity":"MEDIUM","vectorString":"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","version":"4.0"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","lang":"en","description":"CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2025-02-14T19:28:00.388Z"},"source":{"advisory":"GHSA-mp7w-mhcv-673j","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2025-02-14T19:43:42.653932Z","id":"CVE-2025-25304","options":[{"Exploitation":"poc"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-02-14T19:44:24.152Z"}}]}}}