CVE-2026-76845 in adm-zip
摘要
由 VulDB • 2026-08-24
adm-zip 0.5.9 至 0.6.0 在提取目标位置时遵循符号链接。util/utils.js 中的 Utils.sanitize 仅通过比较归档条目名称的字符串形式与解析后的提取根目录来强制实施内容隔离;而 Utils.writeFileTo 使用 fs.openSync(path, "w", 0o666) 打开计算出的目标路径,该操作会解析符号链接,且既未设置 O_NOFOLLOW 标志,也未在写入前执行 fs.lstatSync 检查。当目标位置的某个路径组件已存在为指向提取根目录外部的符号链接时,extractAllTo、extractAllToAsync 和 extractEntryTo 会通过该链接写入条目内容,并修改其目标的权限(chmod),从而将攻击者可控的内容放置到根目录外的文件中,且归档中未出现任何遍历序列。由于前面的 fs.existsSync 检查也会解析链接并在其他情况下拒绝操作,因此需要启用覆盖功能才能完成写入。如果攻击者能够在共享的、可重复使用的或可预测的提取目录(例如临时目录或持续集成工作区)内创建符号链接,则可以覆盖提取进程有权写入的任何文件。
If you want to get best quality of vulnerability data, you may have to visit VulDB.