worse_query:iOS 沙盒逃逸可读取其他应用数据
公开的 iOS 26 和 27 沙盒逃逸让侧载应用读取和修改其他应用的容器;11 月 9 日的更新未修复。
TL;DR
- 一个名为
worse_query的公开概念验证逃逸了 iOS 应用沙盒,能够访问其他应用的数据容器。创建应用组容器的应用可以向容器管理器申请通往任意路径的沙盒扩展。 - 概念验证称 iOS 26.0 至 26.7.2 和 iOS 27.2 可用。Apple 于 2026 年 11 月 9 日发布 iOS 27.2.1 和 iOS 26.7.3,两份安全说明都没有提到沙盒修复。
- 没有分配 CVE,Apple 未发布公告或修复版本。Binance 于 2026 年 11 月 10 日警告种子短语、私钥和登录凭据可能暴露;Binance 和研究者都没有报告攻击或盗窃。由于没有 CVE,截至 2026 年 11 月 10 日该漏洞也未列入 CISA 的 Known Exploited Vulnerabilities (KEV) 目录。
- 删除从 App Store 以外安装的应用,在受管设备上限制应用安装,并把运行过不可信侧载应用的 iPhone 视为已暴露。参见“如何修复?”。
我受影响吗?
以下条件必须全部成立:
- 你使用的 iPhone 或 iPad 运行逃逸所覆盖的版本。概念验证列出了 iOS 26.0 至 26.7.2 和 iOS 27.2。衍生工具还声称支持 iOS 27.2.1。
- 设备上安装了 App Store 以外的应用,或攻击者控制的应用,并且该应用拥有应用组容器。公开概念验证需要一个应用组,侧载工具会自动创建。
- 应用在设备上运行。已演示的逃逸是手机本地行为,不是远程网络攻击。
公开概念验证可以访问每个应用的数据容器,以及 iOS 27 上的一些系统文件夹。其 README 列出了可打开的路径:
/var/containers/Data/System (iOS 27)
/var/containers/Shared/SystemGroup/* (iOS 27)
/var/mobile/Containers/Data/Application/*
/var/mobile/Containers/Data/InternalDaemon/*
/var/mobile/Containers/Data/PluginKitPlugin/*
/var/mobile/Containers/Shared/AppGroup/*
| iOS 系列 | 来源所述的可用范围 | 修复版本 |
|---|---|---|
| iOS 26 | 概念验证 README 称 26.0 至 26.7.2 | 无。iOS 26.7.3 的安全说明没有沙盒修复。 |
| iOS 27 | README 称 27.2;衍生工具声称 27.2.1 | 无。iOS 27.2.1 的安全说明没有沙盒修复。 |
在设备上依次打开“设置”、“通用”、“关于本机”,查看已安装版本。版本显示在第一屏。
对于受管设备群,从移动设备管理控制台列出设备和操作系统版本,然后列出管理目录之外安装的应用。只运行 App Store 应用的 iPhone 与运行侧载构建的设备属于不同的暴露情形。
如何修复?
目前没有修复。Apple 尚未针对 worse_query 发布公告、CVE 或修复版 iOS,11 月 9 日的更新也没有提到它。在 Apple 发布修复前,以下步骤可降低暴露:
- 删除从 App Store 以外安装的应用,包括通过 AltStore、SideStore 或签名服务安装的构建。删除应用及其配置描述文件。
- 在受管设备上,阻止从管理应用目录之外安装应用。在非受管设备上,尽可能使用“屏幕使用时间”阻止安装应用。
- 将 iOS 更新到最新版本。这不会关闭该逃逸,但会修复 Apple 在 11 月 9 日修复的缺陷。
- 对于在设备上保存秘密的钱包或账户,将资金或账户转移到在干净设备上创建的新钱包。按 Binance 的建议重置活动会话。
- 在“设置”、“通用”、“VPN 与设备管理”中检查已安装的配置描述文件,删除无法说明来源的描述文件。
删除侧载应用会移除该设备上的逃逸副本,但不会撤销已经发生的访问。如果不可信应用曾在手机上运行,应把其他应用容器中的数据视为可能已被读取。
根本原因是什么?
该逃逸滥用容器管理器的沙盒扩展 API。应用可以请求容器管理器授予其应用组容器某一部分的访问权限,管理器会跟随应用控制的符号链接,并为链接目标签发扩展。
iOS 用沙盒隔离应用。容器保存应用的数据,应用组让多个应用共享一个容器。当应用需要访问某个路径时,容器管理器可以签发沙盒扩展:应用消费该令牌,把沙盒扩展到该路径。
概念验证调用容器管理器的私有查询接口,请求类 7(应用组)和第 3 部分(组的 Library/Caches):
query_set_class(query, 7); // appGroup
query_set_group_identifiers(query, identifier);
query_set_part(query, 3); // Library/Caches
...
void *result = query_get_single_result(query);
char *token = copy_sandbox_token(result);
int64_t handle = consume_extension(token);
查询之前,应用删除其组的 Library/Caches 目录,并把它重新创建为指向目标路径的符号链接:
[files removeItemAtPath: caches error: nil];
[files createSymbolicLinkAtPath: caches withDestinationPath: target error: nil];
查询会通过文件系统解析所请求的部分。容器管理器跟随符号链接,认定解析后的目标是应授权的路径,并为其返回沙盒扩展。它没有检查解析后的路径是否仍在应用组容器内。应用消费令牌后即可打开目标路径。
概念验证还包含 pathleak,它用 fsgetpath() 暴力枚举 inode 编号,恢复其他容器的 UUID 路径。这样就把一个已知目标路径变成了设备上所有应用容器的列表。
如何被利用?
恶意或侧载应用在本地运行逃逸,取得通往目标目录的沙盒扩展,然后读取或修改属于其他应用的文件。
- 受害者安装 App Store 以外的应用,或攻击者控制的应用。侧载工具会创建逃逸所需的应用组容器。
- 应用删除其应用组的
Library/Caches目录,并用指向目标路径的符号链接替代。 - 应用针对组的
Library/Caches部分调用容器管理器查询 API。管理器跟随链接,并为目标签发沙盒扩展。 - 应用用
sandbox_extension_consume()消费扩展。 - 应用对其他路径重复查询。
pathleak按 inode 枚举其他应用的容器目录,应用为每个目录申请扩展。 - 应用读取数据库、文档、Cookie 和配置等文件。据开发者称,名为 WQ Files 的文件管理器构建还可以编辑、删除和清除这些数据。
该逃逸不需要越狱,也不使用内核漏洞。它是容器管理器授权路径方式中的逻辑缺陷。公开概念验证面向开发者;其他开发者已基于它构建可安装的应用。
Binance 和研究者都没有报告攻击或盗窃。Binance 的警告列出可能暴露的数据类别,而不是被入侵的钱包或受害者数量。交易所没有点名任何钱包应用,研究者也没有。
攻击如何展开?
侧载应用把其应用组缓存目录替换为符号链接,容器管理器为链接目标签发沙盒扩展,应用利用该扩展读取或修改其他应用的数据。
攻击者能做什么?
让手机装上恶意应用的攻击者,可以读取和修改其他应用容器中的文件,以及 iOS 27 上的一些系统文件夹。这可能暴露会话 Cookie、文档、数据库,以及应用存储在容器中的任何秘密。
条件也是影响的一部分:
- 攻击者需要让受害者安装 App Store 以外的应用,或安装拥有应用组容器的恶意应用。公开概念验证没有展示远程安装。
- 应用必须在设备上运行。该逃逸是应用沙盒内的本地代码执行,不是网络服务。
- 范围是其他应用保存在容器中的数据。Binance 警告种子短语、私钥和登录凭据可能暴露;交易所没有指明哪个钱包应用把它们保存在可达路径中。
- 公开概念验证执行读取和枚举。据开发者称,衍生的文件管理器还会编辑、删除和清除数据。
- 没有报告攻击或盗窃,也没有确认任何 App Store 应用使用该逃逸。
影响受 iOS 应用数据保护限制。部分文件用与设备密码绑定的密钥加密,设备锁定时无法读取。公开资料没有测量每种锁定状态下哪些文件仍可读,因此不要假设锁定手机能保护所有容器。
为什么修复有效?
目前没有修复,所以还没有任何东西关闭该逃逸。缺失的检查正是修复必须添加的:在解析请求路径后,容器管理器必须先确认结果仍在应用组容器内,再签发沙盒扩展。
当前代码路径授权解析后的目标。失败的步骤是针对容器根目录验证该目标。正确的实现应解析符号链接,把规范化路径与容器的规范化根目录比较,并在目标位于外部时拒绝请求。它还需要处理检查与使用之间路径发生变化的情况,这正是符号链接造成的竞争。
Apple 尚未发布补丁,因此本节无法引用补丁。概念验证仓库和安全说明是公开记录。
如何检查是否已遭入侵?
没有公开的入侵指标。检查设备上安装了什么,以及不可信应用是否有机会运行。
- 列出从 App Store 以外安装的应用。查找 WQ Files、AltStore、SideStore、签名服务应用,以及你不认识的应用。
- 在“设置”、“通用”、“VPN 与设备管理”中检查配置描述文件,删除无法说明来源的描述文件。
- 在受管设备群中,把已安装应用清单与管理目录比较,标记所有不在目录中的应用。
- 如果不可信应用曾在手机上运行,应假设其他应用容器中的数据可能已被读取。更改手机上使用的账户密码和会话令牌,并把钱包资金转移到干净设备上的新钱包。
- 如果需要调查,在抹除设备前保留设备和日志。iOS 保留的应用文件访问日志很少,因此没有日志并不证明逃逸未被使用。
时间线
- 2026-11-08:研究者 forcequit 在 GitHub 发布
worse_query概念验证。 - 2026-11-09:Apple 发布 iOS 27.2.1 和 iOS 26.7.3。两份安全说明都没有提到沙盒逃逸或
worse_query。 - 2026-11-10:Binance 警告该逃逸可能暴露钱包秘密,The Hacker News 报道了该警告。
常见问题
worse_query 有 CVE 吗?
没有。截至 2026 年 11 月 10 日没有分配 CVE,Apple 也没有发布公告。概念验证仓库、衍生工具和交易所警告构成公开记录。
需要越狱吗?
不需要。该逃逸使用容器管理器的私有查询接口和符号链接,不使用内核漏洞。研究者表示它与越狱无关。
App Store 应用能利用它吗?
尚未确认。概念验证需要应用组容器,App Store 应用在拥有相应 entitlement 时也可以具备。没有任何相关方说明 App Store 应用能否到达漏洞路径,也没有点名任何 App Store 应用。应把这视为未解决问题。
哪些 iOS 版本受影响?
概念验证 README 列出 iOS 26.0 至 26.7.2 和 iOS 27.2。一个衍生工具列出 iOS 27.2.1,没有公开来源列出 iOS 26.7.3。Apple 尚未确认范围。
在野被利用了吗?
截至 2026 年 11 月 10 日没有攻击或盗窃报告。Binance 警告了风险,并告诉用户在怀疑被入侵时删除不可信应用并转移资金。警告不等于受害者报告。
更新到 iOS 27.2.1 或 26.7.3 能修复吗?
不能。Apple 于 2026 年 11 月 9 日发布两者,其安全说明列出的是其他修复,不是沙盒逃逸。在假设更新能关闭该问题前,请检查 Apple 后续版本的说明。
参考文献
forcequitOS/worse_query仓库,“A sandbox escape for iOS 26 and 27, again”,2026 年 11 月 8 日创建,包含 README 的版本范围、可访问路径和概念验证源码:https://github.com/forcequitOS/worse_query(2026 年 11 月 10 日检查)- 概念验证实现
worse_query/worse_query.m,应用组查询、符号链接和沙盒扩展消费:https://github.com/forcequitOS/worse_query/blob/main/worse_query/worse_query.m(2026 年 11 月 10 日检查) - 路径枚举工具
worse_query/pathleak.m:https://github.com/forcequitOS/worse_query/blob/main/worse_query/pathleak.m(2026 年 11 月 10 日检查) - Apple,“About the security content of iOS 27.2.1 and iPadOS 27.2.1”,2026 年 11 月 9 日发布,没有沙盒或
worse_query条目:https://support.apple.com/en-us/149715(2026 年 11 月 10 日检查) - Apple,“About the security content of iOS 26.7.3 and iPadOS 26.7.3”,2026 年 11 月 9 日发布,没有沙盒或
worse_query条目:https://support.apple.com/en-us/149716(2026 年 11 月 10 日检查) - The Hacker News,“Binance Warns of iOS Sandbox Escape That Could Expose Crypto Wallet Keys, No Fix Confirmed”,2026 年 11 月 10 日,包含 Binance 的建议和研究者的声明:https://thehackernews.com/2026/11/binance-warns-of-ios-sandbox-escape.html(2026 年 11 月 10 日检查)