CVE-2025-59840 - Vega跨站脚本漏洞分析
漏洞概述
CVE-2025-59840是一个影响Vega可视化语法的跨站脚本漏洞,该漏洞通过在使用VEGA_DEBUG全局变量的环境中滥用表达式toString调用实现攻击。
漏洞描述
Vega是一种可视化语法,是用于创建、保存和共享交互式可视化设计的声明式格式。在6.2.0版本之前的Vega中,满足以下两个条件的应用程序面临任意JavaScript代码执行风险,即使使用"安全模式"expressionInterpreter:
- 在使用vega库并将vega.View实例附加到全局window对象的应用程序中(类似于Vega Editor)
- 允许用户自定义Vega JSON定义(而非仅通过源代码提供的JSON)
受影响产品
| ID | 供应商 | 产品 | 操作 |
|---|---|---|---|
| 1 | Vega_project | vega |
总计受影响供应商:1 | 产品:1
CVSS评分
| 分数 | 版本 | 严重性 | 向量 | 可利用性分数 | 影响分数 | 来源 |
|---|---|---|---|---|---|---|
| 8.1 | CVSS 3.1 | 高 | 2.8 | 5.2 | security-advisories@github.com | |
| 8.1 | CVSS 3.1 | 高 | 2.8 | 5.2 | MITRE-CVE |
解决方案
更新Vega及其依赖项
- 升级Vega到6.2.0或更高版本
- 升级vega-expression和vega-interpreter
- 避免将View实例附加到全局变量
- 不要将Vega附加到全局window对象
临时缓解措施
不要将vega View实例附加到全局变量,也不要将vega附加到全局window。这些附加vega库和View实例的做法可能便于调试,但不应在生产环境或任何可能由不受信任方提供vega/vega-lite定义的情况下使用。
相关参考
CWE关联
CWE-79: 在网页生成过程中输入验证不充分(跨站脚本)
CAPEC攻击模式
- CAPEC-63: 跨站脚本攻击
- CAPEC-85: AJAX指纹识别
- CAPEC-209: 利用MIME类型不匹配的XSS
- CAPEC-588: 基于DOM的XSS
- CAPEC-591: 反射型XSS
- CAPEC-592: 存储型XSS
漏洞时间线
- 发布日期: 2025年11月13日 20:15
- 最后修改: 2025年11月13日 20:15
- 远程利用: 是
- 来源: security-advisories@github.com