CVE-2025-13437:zx工具使用错误解析的名称或引用
漏洞概述
CVE-2025-13437是一个影响Google开发的Node.js脚本工具zx的安全漏洞,被归类为“使用错误解析的名称或引用”(CWE-706)。该漏洞的CVSS 4.0评分为5.6,属于中等严重性级别。
技术细节
当zx工具以--prefer-local=<path>参数调用时,CLI会创建一个名为./node_modules的符号链接,指向<path>/node_modules目录。问题出现在src/cli.ts文件中的linkNodeModules和cleanup函数存在逻辑错误。
具体来说,linkNodeModules函数错误地返回了目标路径(target path)而不是符号链接路径(symlink path)。随后的清理程序会删除它收到的路径,这导致删除了目标目录本身。结果是:zx可能会删除当前工作目录之外的外部<path>/node_modules目录。
受影响版本与修复
受影响版本:所有低于8.8.5的zx版本
已修复版本:8.8.5及以上版本
漏洞影响
该漏洞主要影响系统的完整性和可用性:
- 完整性影响:高(可导致文件被意外删除)
- 可用性影响:高(可能破坏项目依赖)
- 机密性影响:无
攻击者需要本地访问权限,攻击复杂度低,不需要特殊权限,但需要用户交互。
参考资源
建议措施
- 立即将zx工具升级到8.8.5或更高版本
- 审查使用
--prefer-local参数的所有脚本 - 定期检查项目中的
node_modules目录完整性
该漏洞已于2025年11月20日发布到GitHub Advisory Database,并于次日完成审查。