
macOS第三方安装程序中一个顽固漏洞再次出现,允许攻击者劫持特权进程并获取系统root权限。安全研究员Csaba Fitzl发现,该漏洞利用了macOS处理文件命名冲突的特殊机制,尽管经过七年报告和部分修复,这个安全盲区依然存在。
漏洞影响范围
该漏洞主要影响那些尝试从应用包内运行特权命令的安装程序——这是需要安装辅助工具或后台守护程序的软件常见做法。
漏洞历史溯源
核心问题可追溯至2018年,Fitzl首次报告攻击者可以通过竞速方式预先创建目录结构。通过在合法安装程序到达前控制目录,攻击者可以替换二进制文件,诱骗安装程序以root权限执行恶意代码。
虽然苹果在macOS Sonoma中修复了特定竞态条件,研究员Mickey Jin最近也为相关修复获得了CVE-2025-24099编号,但通过涉及隐藏.localized目录的新攻击向量,底层逻辑缺陷仍然可利用。
"这个漏洞历史非常悠久,苹果始终未能彻底修复...所以我们在2025年仍然面临这个7年后依然可利用的漏洞,只是利用方式不同了,"Fitzl写道。
新型利用技术
新攻击技术利用了macOS文件系统处理命名冲突的特性。当安装程序尝试将应用程序(如Test.app)放入/Applications文件夹,但已存在同名文件夹且Bundle ID不同时,系统不会覆盖现有应用,而是静默创建名为/Applications/Test.localized的新目录并将真实应用安装其中。
"问题在于安装应用时,它预期会被安装在最终位置...但如果存在Bundle ID不同的其他内容,原有内容不会被删除,应用会被放入.localized目录,"博客解释道。
这种重定向造成关键性错位:安装程序认为文件已放入/Applications/Test.app,实际文件却在/Applications/Test.localized/Test.app中,而攻击者的伪造应用仍保留在预期路径。
攻击步骤详解
该漏洞利用简单但有效,只需诱骗用户(或MDM解决方案)运行目标应用的安装程序:
- 诱饵阶段:攻击者在/Applications放置带有随机Bundle ID的伪造Test.app,其中包含伪装成辅助工具的恶意二进制文件
- 切换阶段:用户安装合法Test.app,macOS检测到冲突后将真实应用安装至/Applications/Test.localized/
- 触发阶段:合法安装程序注册指向其认为应用所在位置(/Applications/Test.app)的LaunchDaemon(后台服务)
- 权限提升:系统的launchd服务以root权限执行该路径下的二进制文件,由于攻击者控制该路径,其代码将以完整系统权限执行
"由于我们控制该二进制文件,将获得root代码执行权限,"Fitzl总结道。该安全研究员已公开漏洞利用代码。
Fitzl指出,虽然问题根源在于macOS行为,但最终影响的是第三方厂商,他们"合理预期安装过程能正常完成,无需额外验证步骤"。
在苹果推出全面修复方案阻止这种目录重定向或更严格验证安装路径前,安装程序仍易受这种隐蔽劫持方式影响。
参考来源:
macOS LPE Flaw Resurfaces: .localized Directory Exploited to Hijack Installers and Gain Root Access
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



