Node.js 工具zx存在安全漏洞,可能导致node_modules目录被意外删除

本文详细介绍了CVE-2025-13437安全漏洞,该漏洞影响Google开发的Node.js脚本工具zx。当使用特定参数运行时,由于逻辑错误可能导致外部node_modules目录被意外删除。漏洞评级为中等严重性,已在版本8.8.5中修复。

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文件中的linkNodeModulescleanup函数存在逻辑错误。

具体来说,linkNodeModules函数错误地返回了目标路径(target path)而不是符号链接路径(symlink path)。随后的清理程序会删除它收到的路径,这导致删除了目标目录本身。结果是:zx可能会删除当前工作目录之外的外部<path>/node_modules目录。

受影响版本与修复

受影响版本:所有低于8.8.5的zx版本

已修复版本:8.8.5及以上版本

漏洞影响

该漏洞主要影响系统的完整性可用性

  • 完整性影响:高(可导致文件被意外删除)
  • 可用性影响:高(可能破坏项目依赖)
  • 机密性影响:无

攻击者需要本地访问权限,攻击复杂度低,不需要特殊权限,但需要用户交互。

参考资源

  1. GitHub问题跟踪:

  2. 修复提交:

  3. 官方CVE记录:

建议措施

  1. 立即将zx工具升级到8.8.5或更高版本
  2. 审查使用--prefer-local参数的所有脚本
  3. 定期检查项目中的node_modules目录完整性

该漏洞已于2025年11月20日发布到GitHub Advisory Database,并于次日完成审查。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计