漏洞关键信息 漏洞名称 Arbitrary File Write via Symlink Extraction in compressing 漏洞标识 GHSA ID: GHSA-cc8f-xg8v-72m3 CVE ID: CVE-2026-24884 影响范围 受影响版本: <= 1.10.3 修复版本: - 从 2.0.0 版本开始,修复版本为 2.0.1 - 从 <= 1.10.3 版本开始,修复版本为 1.10.4 漏洞描述 npm 包在从 TAR 存档提取文件时恢复符号链接,但没有验证其目标。通过嵌入解析到提取目录之外的符号链接,攻击者可以将后续文件条目写入主机文件系统上的任意位置。 漏洞细节 根本原因: 对存档条目的目标路径进行清理,但不验证 TAR 存档中包含的符号链接的目标。在提取过程中,库在输出目录内创建这些符号链接。稍后通过符号链接解析的条目被写入符号链接目标而不是预期的提取根目录,从而实现任意文件写入。 影响: - 攻击者可以提供精心制作的 TAR 存档来: - 在预期的提取目录之外写入文件(通过符号链接遍历实现任意文件写入)。 - 在提取期间跟踪符号链接后,将文件写入攻击者控制的主机文件系统路径。 - 在以提升权限执行提取或目标可执行路径的环境中,这可能导致代码执行、特权提升、数据损坏或拒绝服务。 重现步骤 环境: - OS: Ubuntu 24.04 - Node.js: v24.12.0 - : 2.0.0 伪代码示例: 提供了构建 PoC 存档和提取存档的代码示例。 攻击结果: 完成提取后,输出目录包含一个指向 的符号链接,文件 通过该符号链接写入 ,展示了在提取目录之外的任意文件写入。 漏洞风险评估 严重程度: 高 (8.4 / 10) CVSS v3 基础度量: - 攻击向量: 本地 - 攻击复杂性: 低 - 所需权限: 无 - 用户交互: 无 - 作用范围: 未更改 - 机密性: 高 - 完整性: 高 - 可用性: 高