关键信息 漏洞描述 标题: zx deletes external node_modules when using --prefer-local (alias/target confusion in cleanup) 状态: Closed 影响: Unintended data loss / DoS: 删除外部的 ,可能导致构建、CI 任务或开发者项目失效。 受影响组件: (linkNodeModules + cleanup path handling) 受影响版本: zx 8.8.3(可能包括相近版本) 受影响环境: Node.js v18/v20 on Linux 复现步骤: 1. 准备一个包含 的受害者项目。 2. 使用攻击者控制的 路径调用 。 3. 检查受害者项目的 是否被删除。 根本原因 函数创建了一个 指向 ,但在清理时却删除了 路径,而不是解除 的链接。 修复建议 返回 (符号链接路径)而非 。 清理时,如果 表明是一个符号链接,使用 而非递归删除。 补丁提交 和 提交确认问题完全修复。 固定版本发布前的版本受此漏洞影响。 安全建议 建议将此问题纳入 GitHub Security Advisory 中,可申请 CVE 编号。提供的漏洞信息如下: 影响: 数据丢失风险。 根本原因: 清理时删除了符号链接的目标。 修复提交: , , 。 受影响版本: 包含上述修复提交之前的版本。 建议的 CWE: CWE-59。 建议的 CVSS: AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H。