CVE-2026-23745node-tar是Node.js生态中广泛使用的tar文件处理库,用于解析和解压tar归档文件。该漏洞存在于node-tar 7.5.2及更早版本中,当preservePaths选项设置为false(默认的安全配置)时,库未能正确验证和清理Link(硬链接)以及SymbolicLink(符号链接)条目中的linkpath字段。攻击者可以通过精心构造包含恶意路径的tar归档文件,绕过提取目录的根限制,将文件提取到目标系统任意位置。此漏洞可能导致任意文件覆盖攻击(通过硬链接)和符号链接投毒攻击(通过绝对路径符号链接),对系统完整性造成威胁。由于CVSS评分为6.1,属于中危漏洞,但结合实际利用场景可能造成严重后果。
node-tar库在处理tar归档文件时,会遍历归档中的各个条目并提取文件。当preservePaths为false时,库应该阻止提取路径逃离指定的提取根目录。然而,在处理硬链接和符号链接类型条目时,库直接使用了归档文件中提供的linkpath而未进行路径规范化检查。攻击者可以构造包含绝对路径符号链接(如指向/etc/passwd)或穿越路径硬链接的恶意tar文件。当用户或应用程序解压此类归档文件时,符号链接会在提取目录外创建指向敏感文件的链接,后续操作可能覆盖目标文件。对于硬链接攻击,攻击者可以创建指向系统关键文件的硬链接,然后在后续归档解压过程中覆盖这些文件。修复版本7.5.3通过在处理linkpath时应用与普通文件相同的路径清理逻辑来解决此问题。