VU#293714:在 macOS(APFS)上通过符号链接跟随在 Develar app-builder(zipx.Unzip)中发生的任意文件覆盖漏洞
在 Develar 的 app-builder 中发现了一个漏洞。app-builder 是一款命令行构建工具,用于为 macOS、Windows 和 Linux 打包和分发应用程序包。该问题源于 zipx.Unzip 提取例程中 Unicode 规范化碰撞与不安全符号链接跟随行为的组合。攻击者可通过构造结合 Unicode 规范化碰撞与恶意符号链接的 ZIP 归档,在采用 Apple 文件系统(APFS)的 macOS 系统上覆盖任意文件。该漏洞在 ZIP 提取过程中即可被利用,无需提权,可能导致完整性丧失、拒绝服务或潜在代码执行。Develar 的 app-builder 在生态系统中被广泛用作依赖项,影响了众多下游仓库,多个项目已采取措施缓解其暴露风险。彻底修复需从源头解决该漏洞,目前已开发一个 GitHub Pull Request,为下游客户提供参考修复方案。该 Pull Request 针对符号链接跟随类型的漏洞,通过拒绝任何解析目标超出预期输出目录的符号链接,并在常规文件写入中添加 O_NOFOLLOW 标志来处理。报告者 Tomas Illuminati 已协助众多下游供应商和开发者缓解此问题,Electron-Userland 也迅速响应并实施了缓解措施以保护其下游用户。该漏洞可通过结合 Unicode 规范化碰撞与符号链接跟随行为进行利用,使攻击者能够绕过路径验证检查并将写入重定向至预期提取目录之外。CERT/CC 已准备了一份漏洞说明,以通知用户该问题并提供缓解与修复指导。总体而言,该漏洞对使用 APFS 的 macOS 系统安全性影响重大,建议用户采取步骤缓解其暴露风险。