expr-eval库安全漏洞分析:CVE-2025-12735
漏洞概述
expr-eval是一个JavaScript表达式解析器和求值器,设计用于安全地评估包含用户定义变量的数学表达式。然而,由于输入验证不足,攻击者可以向evaluate()函数传递特制的变量对象,从而触发任意代码执行。
技术细节
受影响版本
- npm expr-eval包:<= 2.0.2
- npm expr-eval-fork包:<= 2.0.2
修复版本
- expr-eval-fork:3.0.0
- expr-eval:暂无修复版本
漏洞严重性
CVSS评分
- 总体评分:8.6/10(高危)
- CVSS v4向量:CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
攻击指标
- 攻击向量:本地
- 攻击复杂度:低
- 权限要求:无
- 用户交互:无
影响范围
- 机密性:高影响
- 完整性:高影响
- 可用性:高影响
安全弱点
CWE分类
- CWE-94:代码生成控制不当(代码注入)
- 产品使用外部影响的输入构建代码段,但未能正确清理可能修改预期代码段语法或行为的特殊元素。
参考信息
- NVD漏洞详情:CVE-2025-12735
- GitHub安全公告:GHSA-jc85-fpwf-qm7x
- 相关代码库:
- silentmatt/expr-eval #288
- jorenbroekema/expr-eval
- 官方包信息:
- npm expr-eval包
- npm expr-eval-fork包
时间线
- 发布到NVD:2025年11月5日
- 发布到GitHub咨询数据库:2025年11月5日
- 审核时间:2025年11月5日
- 最后更新:2025年11月10日
漏洞状态
目前该漏洞已被GitHub审核确认,属于高危安全漏洞,建议使用受影响版本的用户及时关注官方修复进展并采取相应防护措施。