
CVE-2025-70341: Local Privilege Escalation via TOCTOU in App-Auto-Patch
App-Auto-Patch v3.4.2 使用世界可写权限(chmod 777)创建其工作目录,从而引发本地 TOCTOU(时间检查-时间使用)竞争条件。未授权的本地攻击者可利用此漏洞在安装前将经过验证的软件包替换为恶意软件包,从而以 root 身份执行任意代码。此外,恶意的 Installomator 标签片段可在标签解析期间通过eval对未净化的输入执行任意代码。
评分:7.8(高危)
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
| 指标 | 值 |
|---|---|
| 攻击向量 | 本地 |
| 攻击复杂度 | 低 |
| 所需权限 | 低 |
| 用户交互 | 无 |
| 影响范围 | 不变 |
| 机密性 | 高 |
| 完整性 | 高 |
| 可用性 | 高 |
文件: App-Auto-Patch-via-Dialog.zsh,第 2525 行
安装过程中,appAutoPatchFolder 使用 chmod 777 创建。这允许任何本地用户写入、修改或删除该目录中的文件。
文件: App-Auto-Patch-via-Dialog.zsh,第 4744 行
Installomator 标签片段通过 eval 解析,未进行任何净化。结合世界可写目录,攻击者可注入一个恶意标签片段,从而以 root 身份执行任意命令。
1. App-Auto-Patch 使用 chmod 777 创建 appAutoPatchFolder
2. Installomator 将 PKG 下载到世界可写的 tmpDir,并验证签名
3. 在验证与安装之间执行约 140 行 bash 代码(竞争窗口)
4. 攻击者将已验证的 PKG 替换为恶意 PKG
5. installer -pkg 以 root 身份运行攻击者的 PKG
chmod 777 tmpDir 的任何 Installomator 版本)的 macOS 系统pkgbuild)终端 1(以未授权用户身份):
python3 poc.py
终端 2(以 root 身份,模拟 MDM/管理员触发):
sudo ./simulate-vulnerable-env.sh
PoC 会监控 /var/tmp 中 Installomator 使用 chmod 777 创建的目录,然后在竞争窗口内将合法 PKG 替换为包含以 root 身份执行的 postinstall 脚本的恶意 PKG。
详见 poc.py 和 simulate-vulnerable-env.sh。
chmod 777 改为 chmod 755,从而阻断攻击链本概念验证仅用于教育目的和授权安全测试。请负责任地使用,且仅在你拥有或已获明确测试权限的系统上使用。
| 日期 | 事件 |
|---|
| 2025-12-22 | 发现漏洞 |
| 2025-12-22 | 创建 PoC |
| 2025-12-22 | 提交 PR #202 |
| 2025-12-22 | 提交 Issue #203 |
| 2025-12-23 | 在 App-Auto-Patch 3.5.0 中修复 |
| 2026-02-20 | 分配 CVE-2025-70341 |