近期,macOS(Tahoe 系列,尤其是 ≤26.5)暴露出两个值得关注的高危逻辑漏洞。它们均已在 macOS 26.6 中修复,但披露细节、影响范围和修复透明度引发了安全社区的讨论。以下内容基于公开披露材料整理。
1. DesktopServicesHelper 本地提权(LPE):普通用户秒级拿 root
仓库与披露:GitHub Lyutoon/macOS_DSH_LPE(测试于 macOS 26.5.2 build 25F84,arm64,SIP 开启)。
![图片[1]李白你好-实战攻防MacOS 近期两个高危漏洞:本地提权(DSH LPE)与屏幕共享预认证RCE李白你好-实战攻防李白你好](https://www.libaisec.com/wp-content/uploads/2026/08/20260805101558185-图片.png)
https://github.com/Lyutoon/macOS_DSH_LPE
核心思路(组合逻辑漏洞):
- DesktopServicesHelper(DSH) 的
RepairPermissionsForCloudItemsXPC 处理器(sub_100022574)对调用者提供的路径执行open(O_SYMLINK)+fchown(fd, caller_euid, …),没有路径 containment 检查,也没有 entitlement 门控。它原本用于修复 iCloud Drive 权限,但可被滥用对任意非 SIP 保护的 root 拥有文件执行 chown。 - 分发门控(
sub_1000322D0)仅检查sandbox_check_by_audit_token == true,并错误假设“沙箱 = Apple 受信任 App 沙箱”。任意低权限进程可通过sandbox_init(kSBXProfileNoInternet)满足该检查。 - securityd 在每次
AuthorizationCopyRights时实时读取/private/var/db/auth.db(及 -wal/-shm),并假设该文件仅 root 可写,打开时不再验证st_uid == 0。
攻击链(约 2 秒,无 GUI 提示、无需用户交互):
- 调用
sandbox_init通过门控。 - 通过 XPC 让 DSH 将
auth.db、auth.db-wal、auth.db-shm的所有者改为攻击者。 - 用 sqlite3 将
system.privilege.admin规则的 class 改为 4(allow)。 - 调用
AuthorizationExecuteWithPrivileges,触发security_authtrampoline以 euid=0 执行攻击者命令,最终落下 setuid root shell。
结果:uid=0(root) gid=0(wheel)。PoC 为自包含 shell 脚本,内联编译三个小工具。Apple 确认相关问题已在 26.6 beta(约 2026 年 6 月中旬)修复,但公开公告主要提及 DSH 相关的 Gatekeeper 绕过,未单独枚举此 LPE,也未分配 CVE 或给予 credit。仓库作者因此选择公开记录。
影响:高危本地提权。任何能运行代码的普通用户即可在 SIP 开启环境下直接获得 root。
2. 屏幕共享(screensharingd)预认证 Root 文件读写 / 潜在 RCE
https://warez.sl0p.foo/apple-screensharing-rce/
主要披露:warez.sl0p.foo 的详细技术分析,以及相关社区讨论(包括 reverse.put.as、IT之家等中文报道)。
漏洞本质:
screensharingd在处理 SRP(Secure Remote Password,安全类型 36)认证时,对帧长度验证存在逻辑错误。- 当收到 big-endian 32 位长度 ≥ 32768(任意高位 bit 置位)的 SRP 帧时,“帧过大”错误路径错误地返回了前一次 4 字节读取的成功状态(0),而非错误码。
- 调用者将其解释为“认证完成”,直接进入后认证 RFB 消息循环,跳过密钥交换、密码验证、ChaCha20-Poly1305 会话加密等所有步骤。连接以明文运行。
随后,攻击者可利用 Apple 私有的文件复制协议(消息类型 0x22),以 root 权限进行任意文件读写。
前提条件:目标开启了屏幕共享(系统设置 → 通用 → 共享 → 屏幕共享)。无需用户名、密码或任何交互。
SIP 影响:
- 认证绕过 + root 文件读/写在 SIP 开启时依然有效。
- 完整 RCE 路径(例如通过 crontab 注入)在默认 SIP 开启环境下受阻(
/var/at等路径被保护)。作者后续澄清原始 crontab 演示是在 SIP 关闭环境下完成的。 - SIP 开启时仍可写到大量非保护路径(如
/etc/sudoers.d/、/etc/zshenv、/Library/LaunchDaemons、用户目录、/usr/local等),足以构建持久化或二次提权原语。作者暂未公开完整 SIP 兼容 RCE 链。
额外弱点:SRP 实现中对客户端公钥 A 的检查不完整(未拒绝 A ≡ 0 (mod N)),理论上可导致共享密钥为零,但主利用未依赖此点。
漏洞已在 macOS 26.6(2026-07-27)修复。社区有研究者提供了文件下载 PoC,并讨论了其预认证性质的严重性。
总结与建议
这两个漏洞都属于典型的“单组件看似正确,组合后危险”的逻辑问题:
- DSH LPE 利用了 iCloud 权限修复原语与 authorization 框架对
auth.db实时信任的组合。 - 屏幕共享漏洞则是协议解析中错误路径状态未正确传播导致的预认证绕过,直接暴露了 root 文件操作接口。
防护建议:
- 立即升级到 macOS 26.6 或更高版本。
- 若不需要屏幕共享,请关闭该功能(这是预认证漏洞的唯一前提)。
- 保持 SIP 开启(默认状态)。
- 对本地低权限代码执行场景保持警惕(例如恶意软件、供应链攻击后的横向移动)。
这些案例再次提醒:即使是经过长期演进的系统组件,在边界条件、信任假设和错误处理上仍可能留下高危逻辑漏洞。公开的技术细节有助于防御方理解攻击面,也推动了更透明的漏洞处理讨论。建议相关人员仅在授权环境中研究 PoC,切勿用于非法用途。
参考:https://tier1.life/thread/458

















暂无评论内容