漏洞关键信息 漏洞概述 漏洞名称: 通过符号链接链中的硬链接目标逃逸实现任意文件读/写 CVE ID: CVE-2026-26960 严重性: 高 (CVSS:3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N) 受影响版本: <=7.5.7 修复版本: 7.5.8 漏洞细节 问题描述: - 在Node.js 模块中, 函数允许攻击者通过受控的存档文件创建指向提取目录外文件的硬链接,利用默认选项。 - 这使得攻击者可以任意读取和写入文件(无root权限,无chmod,不保留路径)。 - 严重性高,因为绕过了路径保护机制,将存档提取变为直接文件系统访问原语。 绕过链: 利用两个符号链接和一个硬链接实现。 原因: - 检查是基于字符串的,并不解析磁盘上的符号链接,这对于硬链接目标安全性是一个问题。 - 硬链接提取时将目标解析为 ,然后调用 . - 目录安全性检查只应用于提取条目的目标路径,而不是解析后的硬链接目标路径。 证明概念(PoC) 代码位置: hardlink.js 环境: - Node: v25.4.0 - tar: 7.5.7 - OS: macOS Darwin 25.2.0 - 提取选项: 默认 ( ) 步骤: 1. 准备或定位 模块。 2. 运行测试脚本。 3. 预期漏洞输出。 解释: - : 提取的 和外部secret是同一个文件对象。 - : 读取 泄露外部内容。 - : 写入 修改外部文件。 影响 漏洞类型: 通过存档提取路径混淆和链接解析实现任意文件读/写。 受影响对象: 提取攻击者控制的tar存档的应用/服务(使用Node.js 默认设置)。 影响范围: 提取进程用户的权限。 潜在后果: - 读取进程用户可访问的敏感文件。 - 覆写提取目录外的可写文件。 - 根据部署环境(key, config, script, app data等)可能升级影响。