苹果CVE-2025-24104漏洞未完全修复,可以读取沙盒外的文件

苹果CVE-2025-24104漏洞未完全修复,可以读取沙盒外的文件

独眼情报 2025-02-27 01:43

CVE-2025-24104 漏洞分析:沙箱外文件读取

我报告了一个后来被 Apple 标记为 CVE-2025-24104
 的漏洞。在我最初的报告中,我展示了恶意备份如何可以绕过沙箱限制。然而,Apple 的初始描述称这个漏洞可能导致受保护的系统文件被修改。我想澄清一点:这个漏洞实际上允许攻击者读取沙箱外的任意文件。

时间线

  • 发现时间:
     2024年4月

  • 报告时间:
     2024年10月

  • 修复时间:
     iOS 18.3 beta 1

我的发现

当我深入研究这个问题时,我发现该漏洞源于备份恢复过程中缺乏适当的符号链接验证。具体来说,如果你制作一个备份,其中文件
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/CloudConfigurationDetails.plist

被替换为符号链接,系统最终会读取你选择的文件 — 即使该文件位于沙箱之外。

工作原理

  • 缺陷:
    mc_mobile_tunnel
     lockdown 服务未能检查 CloudConfigurationDetails.plist
     是否为符号链接。如果是,该服务会跟随链接,允许攻击者获取任何受限文件的内容。

  • 复现步骤:

  • 创建恶意备份:

我制作了一个备份,其中 CloudConfigurationDetails.plist
 是指向任何受限文件的符号链接。

  • 恢复备份:

我在设备上恢复了这个备份并重启。

  • 利用漏洞:

使用 lockdown 连接,我向 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)

原文见:

https://github.com/ifpdz/CVE-2025-24104