
我报告了一个后来被 Apple 追踪为 CVE-2025-24104 的漏洞。在我最初的报告中,我演示了如何利用恶意备份绕过沙箱限制。然而,Apple 最初的描述指出该漏洞可能导致受保护系统文件被修改。我想澄清一下:这个漏洞实际上允许攻击者读取沙箱外的任意文件。
当我深入研究这个问题时,我发现该漏洞源于备份恢复过程中缺乏正确的符号链接验证。具体来说,如果你构造一个备份,其中文件
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/CloudConfigurationDetails.plist
被替换为符号链接,系统最终会读取你选择的文件——即使该文件位于沙箱之外。
漏洞所在:
mc_mobile_tunnel 锁定服务未能检查 CloudConfigurationDetails.plist 是否为符号链接。如果是,服务会跟随该链接,从而允许攻击者获取任何受限文件的内容。
复现步骤:
CloudConfigurationDetails.plist 是一个指向任意受限文件的符号链接。com.apple.mobile.MCInstall 服务发送了 GetCloudConfiguration 命令。服务没有返回预期的文件内容,而是返回了我的符号链接所指向的文件内容。读取沙箱外任意文件的能力是一个严重的问题。这意味着本应受到保护的敏感系统数据可能暴露给攻击者。这不仅仅是一个小漏洞——而是备份处理方式中的一个根本性安全缺陷。
要解决此问题,备份恢复过程需要进行更严格的检查:
CloudConfigurationDetails.plist 的文件之前,服务应验证它是一个常规文件而不是符号链接。如果是符号链接,恢复过程应拒绝或安全处理。随着 iOS 18.3 的发布,Apple 在 ManagedConfiguration 框架中引入了额外检查,用于删除 ConfigurationProfiles 文件夹中找到的任何符号链接。具体来说:
MCRemoveFileIfSymlink 的新函数。MCFixHostileSymlinks 调用。ConfigurationProfiles 文件夹中的文件被识别为符号链接时,该文件会立即被删除。你可以在这里查看 bindiff 详情:
https://github.com/blacktop/ipsw-diffs/blob/main/18_2_22C152__vs_18_3_22D5034e/DYLIBS/ManagedConfiguration.md
下面是我自己的差异截图,显示了新增检查的位置:

值得一提的是,这一新的缓解措施并未100%修复该问题。我已经找到了一种绕过它的方法,因为 Apple 没有实施我建议的修复方案,但我将保留这些细节不公开。
这是我对 CVE-2025-24104 的个人记述,强调 Apple 最初的描述存在偏差。真正的风险是未经授权读取沙箱外的文件,而不是修改系统文件。
漏洞发现者:Hichem Maloufi (ifpdz)