iPhone 越狱圈炸了:硬件级越狱不可修补?A12 / A13 时代的 BootROM 漏洞回来了!

作者:championsky | 发布时间: | 更新时间:

usbliter8:A12/A13 时代的 BootROM 漏洞,真正打穿的是 USB 控制器和启动链

iPhone 越狱圈这次确实有大新闻。

Paradigm Shift 团队公开了一个新的 BootROM 级漏洞利用:usbliter8

它影响的不是普通 App,不是 WebKit,也不是某个 iOS 版本的用户态漏洞,而是 Apple A12 / A13 这一代设备更底层的 SecureROM / BootROM 启动阶段

这类漏洞的分量完全不一样。

因为 BootROM 是设备上电后最早执行的代码之一,位于整个安全启动链的最底部。一旦这个阶段被打开,后面 iBoot、内核、系统分区这些更上层的东西,讨论空间都会变大。

这是自checkm8(2019年)以来,首个出现在A11之后芯片上的此类漏洞。由于易受攻击的代码在芯片制造过程中就已经被蚀刻在芯片上,因此任何iOS更新都无法修复该漏洞。所有持有iPhone XS、XR、11或Apple Watch Series 4/5的用户都需要了解这究竟意味着什么,因为媒体报道的说法在“所有iPhone都已损坏”和“漏洞微乎其微”之间摇摆不定,而这两种说法都与最初的技术报告不符。

这也是为什么它一公开,越狱圈和 iOS 安全圈都在看。

先说结论

usbliter8 的核心不是“又出了一个越狱工具”。

它真正有价值的地方在于:

它证明 A12 / A13 的 SecureROM 仍然存在可以被外部 USB 交互触发的底层攻击面。

目前公开支持范围主要包括:

  • Apple A12

  • Apple A13

  • Apple Watch S4 / S5

A12X / A12Z 理论上有支持可能,但目前还没有实现。

也就是说,iPhone XS / XR / 11 这一代设备,重新进入了 BootROM 级安全研究视野。

这个漏洞到底打在哪里?

这次问题出在 USB 控制器相关逻辑里。

更具体一点,是 Apple SoC 里使用的 Synopsys DesignWare USB 控制器,也就是常说的 DWC2

iPhone 在 DFU / 恢复相关流程里,会通过 USB 和外部主机交互。

USB 控制传输里有一种很关键的东西叫 Setup transaction

每次 Setup transaction 通常由两部分组成:

  1. Token packet

  2. Data packet

Data packet 里有一个 8 字节的 USB device request。

正常情况下,这些 Setup packet 会被 USB 控制器通过 DMA 写进内存,然后 SecureROM 里的 USB 驱动去处理。

问题就出在这个 DMA 写入过程。

usbliter8 是什么?为什么它会被拿来和 checkm8 比较?

为了理解这项发现的影响范围,回顾一下2019年9月发生的事情很有帮助。一位名为axi0mX的研究人员发布了checkm8,这是一个BootROM漏洞利用程序,它使所有搭载A5系列(iPhone 4S)到A11系列(iPhone X)SoC的设备永久脱离了苹果的补丁保护范围。五年来的iPhone产品线都因此永久处于易受攻击的状态,而这个漏洞也成为了checkra1n越狱工具以及GrayKey和Cellebrite等取证工具的基础。

usbliter8 也占据了同样的市场空白,但它针对的是更新的硬件:它不仅支持 A11 芯片,还扩展到了 A12 和 A13 芯片,覆盖了 iOS 18 仍然支持且在翻新机市场销量巨大的 iPhone XS-11 系列。Paradigm Shift 表示,他们已与苹果产品安全团队协调披露此事,并感谢该团队的“迅速响应、建设性参与和合作”,但根本问题在化学层面上是无法修复的:SecureROM 是只读存储器,在制造过程中被烧录到芯片中,任何空中更新都无法更改它。


它的实际运作方式

该漏洞利用的核心技术在于Synopsys DesignWare DWC2 USB 控制器的一个缺陷,该控制器与苹果当时集成到 SoC 中的 IP 模块相同。当设备进入 DFU 模式(设备固件更新模式,一种紧急状态,在此状态下,手机可以通过数据线接收固件更新)时,USB 控制器会将最多三个连续的 Setup 数据包排队到内存中。在第四个数据包到达时,DMA 地址(直接内存访问,一种允许外设在不涉及 CPU 的情况下写入 RAM 的机制)会通过减 24 个字节的方式重置。由于控制器递增地址的数值是可变的,而递减地址的数值是固定的,因此每次接收到的数据包小于预期值时,都会在 12 字节的缓冲区中发生下溢。


( iPhone XR 通过 tether 降级从 iOS 18 到 iOS 14.0 beta 4,没有保存 SHSH!)

攻击者可以将受控数据写入 SRAM(静态 RAM,SoC 内部存储 BootROM 的内存)中原本不应访问的区域。Paradigm Shift 将其描述为“受控 DMA 写入原语”,当 DART(设备地址解析表,用于隔离外设的地址转换单元)处于旁路模式时,该原语即可生效。A12 和 A13 在 DFU 模式下运行时恰好处于这种状态。

在 A13 芯片上,存在第二个障碍:指针认证码 (PAC)。苹果公司会将加密签名注入函数指针,以绕过传统的面向返回编程 (ROP)。Paradigm Shift 通过破坏引导加载程序堆、操纵 pa​​nic 计数器并将执行引导至一个“gadget”来规避这一障碍。该“gadget”会接收一个受控指针,并沿着一条禁用身份验证的路径执行。在 A12 芯片上测得的延迟约为 400 毫秒,这是将 shellcode 写入引导加载程序内存并在 CPU 跳转到该 shellcode 之前所需的时间。

技术说明: A11 不存在此漏洞,因为其 USB 驱动程序会在每次事务处理前手动清除 DMA 地址,而 A12 代码出于未公开的原因取消了这一做法。A14 及更高版本在 SecureROM 内部正确配置了 DART,因此不会暴露该原语。A12X 和 A12Z(2018-2020 款 iPad Pro)理论上存在漏洞,但 Paradigm Shift 尚未发布针对这些型号的有效测试。

如果你还没看懂,请看下面概要版讲解:

技术核心:DMA 指针回退和 12 字节 underflow

DWC2 控制器会把连续收到的 Setup packet 存进内存。

它最多缓存 3 个连续 Setup packet。

当第 4 个 Setup transaction 到来时,控制器会把 DMA 基地址回退到起始位置,类似一个 ring buffer。

听起来没问题。

但问题在于它的回退逻辑太死板。

每写完一个 packet,控制器会根据实际写入的数据大小递增 DOEPDMA 指针。

但是在重置时,它不是根据实际写入长度回退,而是固定回退 24 字节。

也就是默认按:

3 个 Setup packet × 8 字节 = 24 字节

来处理。

关键 bug 在这里:

控制器也接受更小的 packet,而且仍然按 4 字节粒度存储。

于是就出现了指针递增值和固定回退值不匹配的问题。

简单讲:

  • 正常预期:写入 24 字节,再回退 24 字节

  • 实际情况:攻击者可以让写入量小于 24 字节

  • 但控制器仍然固定回退 24 字节

结果就是:

DMA 指针被回退到了原本不该写的位置。

这就形成了一个 buffer underflow primitive。

公开分析里提到,这个 underflow 可以按 12 字节步进触发。

这不是普通内存越界那么简单。

因为发生的位置非常早,已经在 SecureROM 处理 USB 的阶段。

使用方法:硬件和工作流程

概念验证需要一根 USB-A 或 USB-C 数据线和一个基于Raspberry Pi RP2350微控制器的开发板,物料总成本略高于十美元。工作流程分为四个步骤:

  1. 关闭苹果设备电源,并将其置于 DFU 模式(按键顺序因型号而异,但苹果官方支持页面上有相关文档)。

  2. 通过 USB 将设备连接到刷有 usbliter8 固件的 RP2350 板。

  3. 该电路板发送格式错误的 Setup 数据包序列,滥用 DMA 下溢并将 shellcode 写入 SRAM。

  4. BootROM 会在 iBoot 正常加载之前执行恶意代码。这样,iPhone 就会启动到一个由攻击者控制的状态。

整个操作每个设备耗时不到两秒。官方概念验证代码托管在:

此处内容已隐藏,请评论后刷新页面查看.

为什么 A12/A13 可利用,而 A11 和 A14+ 不一样?

这部分才是真正有技术含量的地方。

单纯有 USB 控制器 bug,不代表一定能利用。

还得看芯片启动阶段对 DMA 和内存访问的配置。

在 A12 / A13 上,USB DART 在 SecureROM 阶段处于 bypass 配置。

DART 可以理解为 Apple 设备里的 IOMMU 类机制,用来约束外设 DMA 能访问哪些内存。

如果 DART 配置严格,USB 控制器即使有 bug,也不一定能随便写 SRAM。

但 A12 / A13 这里的问题是:

USB DART bypass 让攻击者能够通过这个 DMA bug 更自由地覆盖 SRAM 数据。

这就把一个 USB 控制器的小指针问题,放大成了启动链里的内存破坏能力。

A11 为什么不受同样影响?

因为 A11 的 USB 驱动在每次接收 packet 后,会手动把 DMA 地址重置回初始值,等于把这个 underflow 利用链给挡住了。

A14 以及更新设备为什么目前看起来不可利用?

因为后续设备在 SecureROM 里更正确地配置了 DART,使这个 USB DMA 写入无法随意覆盖关键 SRAM 区域。

所以 usbliter8 的核心不是“所有 DWC2 都危险”。

而是:

硬件 bug + SecureROM 固件配置缺陷 + 特定芯片启动链布局,三者叠加,才让 A12/A13 打开了利用窗口。

A12 上为什么更直接?

A12 的利用路径相对直观。

原因是 USB 控制器的 DMA buffer 在 heap 上,而位置靠近 USB task 的 stack。

这意味着攻击者通过 underflow 写,可以影响到 USB task 栈上的保存返回地址,也就是 LR。

在 ARM64 里,LR 保存的是函数返回后要跳回去的位置。

如果能覆盖保存的 LR,就有机会在任务切换或函数返回时拿到 PC 控制。

这就是经典控制流劫持:

先获得任意位置写,再覆盖控制流相关数据,最后把执行流引到自己想去的位置。

所以在 A12 上,核心思路比较清晰:

DMA underflow → 覆盖栈上 saved LR → 等待调度切换 → 获得 PC control。

这也是为什么 A12 相对好打。

A13 为什么麻烦?

A13 上难点更大,因为引入了 PAC。

PAC,全称 Pointer Authentication Code,指针认证。

它的作用是给返回地址、函数指针这类关键控制流数据加签名。

你不能随便伪造一个地址丢到 LR 里。

如果签名不对,CPU 不会按你想的路径执行。

公开分析里提到,A13 上 PAC 主要保护 stack-stored LR,这就挡住了 A12 那种直接覆盖 saved LR 的路子。

所以 A13 的利用不是简单复刻 A12。

它需要绕过更多机制:

  • heap metadata checksum

  • LR signing

  • task context restore

  • panic path

  • DART cleanup

  • IRQ handler 相关结构

这也是 usbliter8 真正复杂的地方。

它不是一个单点溢出直接跳 shellcode 的老派漏洞。

更像是一步一步把系统引到一个可控状态:

先利用 DMA underflow 改 DART 相关对象; 再借 cleanup 路径获得有限写原语; 再避免 heap checksum 触发 panic; 再处理 panic 行为,让系统不要直接重启; 再维持 USB task 和中断处理状态; 最后才去改可以影响 PC 的关键位置。

这类利用已经很接近现代底层 exploit 的真实面貌:

不是一个 bug 解决所有问题,而是 bug、时序、内存布局、异常处理、硬件配置一起配合。

如果您拥有的是搭载 A12 或 A13 芯片的 iPhone,该怎么办?

研究人员和行业媒体引用的安全专家提出的操作指导意见,主要集中在以下五点上。

A12/A13 用户缓解措施检查清单

  • 强密码:放弃 4 位或 6 位 PIN 码,改用至少 8 个字符的字母数字密码短语。SEP 会强制执行指数级延迟,因此暴力破解密码短语几乎不可能。

  • 启用 Face ID 或 Touch ID:它们增加了 usbliter8 无法绕过的第二重验证因素。

  • 不要让手机无人看管:无论是在酒店、飞机上还是在共享办公桌旁。这种攻击只需要大约 2 秒钟,所以喝杯咖啡的时间已经足够长了。

  • 开启 USB 限制模式:在“设置”>“面容 ID 与密码”>“USB 配件”中关闭。此模式会在锁定后一小时内阻止 USB 枚举,即使在 DFU 模式下也无法完全阻止攻击,从而减缓攻击速度。

  • 计划升级:任何使用 iPhone 进行敏感工作的人都应该计划在下一个更新周期内升级到 A14+ 设备,这不仅是因为 usbliter8,也是为了与最近的硬件保护措施保持一致(内存完整性强制执行、更成熟的锁定模式)。

谁真正面临风险:三种情景

“iPhone XS 彻底坏了”的说法从技术上讲没错,但在实际操作中却具有误导性。威胁模型至关重要。以下是持有 A12 或 A13 设备的用户可能遇到的三种实际场景。

场景一:在家或办公室的日常使用

usbliter8 带来的额外风险几乎为零。该漏洞利用需要实际持有手机、手动进入 DFU 模式以及通过 USB 连接。如果陌生人已经拥有了你的 iPhone,并且满足了这些条件,他们还有很多更简单的攻击途径,例如网络钓鱼和社会工程。安全隔离区的隔离也意味着密码始终受到保护:即使没有用户的密码,攻击者也可以在 iOS 系统启动前运行代码,但无法读取明文照片、解锁银行应用或解密 iMessage 信息。

场景二:设备盗窃

情况在这里只有轻微的变化。理论上,窃贼如果拿到一部关机的 iPhone 11,可以在启动时运行未签名代码,但只要启用了面容 ID 和密码,并且设备已加密(自 2014 年起 iOS 默认启用),这种攻击就没什么用。然而,usbliter8 漏洞确实打开了 Paradigm Shift 所说的“更广泛的安全隔离区入侵途径”:未来,针对安全隔离区的后续攻击链可能会更容易串联起来,因为攻击者现在可以修改与安全隔离区并行运行的软件。实际上,对于普通用户来说,坚持使用六位数密码,或者更好的选择是字母数字组合的密码短语,才是正确的做法。

情景三:国际旅行、敏感工作、国家监控

事情变得严肃起来。开发取证工具的公司(例如 Cellebrite、GrayShift 和 Magnet)历来都在其产品中内置了 BootROM 漏洞利用程序,而 A12-A13 芯片上出现可用漏洞,无疑扩大了在检查站、海关和扣押程序中数据提取的窗口期。经常出入国界或在非民主政权下工作的记者、活动人士和高管,应该认真考虑将 iPhone 11 或 XS 留在家里,选择基于 A14 或更新芯片(例如 iPhone 12 及更新机型)的设备,因为这些设备不受 usbliter8 漏洞的影响。

它为什么需要特殊硬件?

这次还有一个很容易被忽略的点:

普通 Mac / PC 的 USB 栈通常摸不到这个低层 bug。

原因是桌面系统的 USB 栈太“正常”了。

它会按规范发包,会帮你处理很多边界,会限制你构造某些非典型交易。

而这个漏洞恰恰需要非常底层、非常精确地控制 USB packet 和时序。

所以项目里使用的是 RP2350 这类微控制器开发板。

不是为了炫技,而是因为你需要一个能更贴近 USB 线缆和控制器交互层的设备,去构造普通主机栈不方便发出的 USB 行为。

这也说明 usbliter8 不是普通用户点一下按钮就能用的东西。

它更偏硬件安全研究、越狱开发和底层逆向。

“不可修补”到底是什么意思?

这里也要说清楚。

很多人看到 BootROM 漏洞就会说“不可修补”。

这句话本身没错,但容易被误解。

不可修补不是说 Apple 什么都不能做。

Apple 可以做缓解,比如:

限制某些模式下的行为; 提高后续启动阶段检查; 通过系统策略降低后利用空间; 在新硬件上修正设计。

但如果漏洞真正存在于芯片 ROM 或早期硬件控制器行为里,已经出厂的设备无法通过普通 iOS 更新把 ROM 本身重写掉。

所以更准确的说法是:

现有受影响硬件无法通过常规软件更新从根上移除这个 BootROM 级缺陷。

这就是这类漏洞珍贵的地方。

它不是一次性 iOS 版本窗口,而是某一代硬件的长期研究入口。

未被攻破的部分:安全隔离区

Paradigm Shift报告中最重要的一点,也是主流媒体报道中误解最多的一点。安全隔离区处理器是一个独立的协处理器,拥有自己的安全ROM、内存以及与主处理器之间独立的加密通信通道。文件系统加密密钥、Face ID和Touch ID模板以及用于在连续输入密码失败后强制执行指数退避的密码尝试计数器都存储在这里。


usbliter8 执行的代码位于应用程序处理器的 BootROM 中,而非安全隔离区 (SEP) 中。简单来说:攻击者可以获得 iOS 内核级访问权限,但无法提取密码或绕过安全隔离区设置的暴力破解延迟。Paradigm Shift 明确指出:“虽然 usbliter8 本身并不影响安全隔离区,但它为攻破安全隔离区开辟了更广泛的途径。”正是“更广泛的”这个词让苹果感到担忧,因为它意味着,如果未来真的出现针对安全隔离区的攻击链,攻击者将拥有一个更加友好的操作环境。

普通用户要不要慌?

不需要。

usbliter8 不是远程漏洞。

不是打开网页就中招。

不是收到短信就被打。

它需要物理接触设备,并且需要进入特定启动/恢复相关状态,还需要配合专门硬件和复杂利用流程。

所以普通用户最大的建议仍然是老三样:

手机别离身。 丢失后尽快抹除。 敏感设备升级到更新硬件。

对于普通人来说,它不是日常远程攻击威胁。

对于安全研究者来说,它是非常有价值的底层突破。

对越狱圈意味着什么?

这次最大的意义是:

A12/A13 设备重新有了 BootROM 级入口。

但这不等于普通用户马上就有完美越狱。

从 BootROM exploit 到稳定越狱工具,中间还有很多工程工作:

  • 稳定触发

  • payload

  • iBoot 链接

  • SEP 边界

  • 文件系统修改

  • 系统版本兼容

  • tethered 使用体验

  • 后续工具链整合

usbliter8 目前更像是研究入口,而不是面向普通用户的一键越狱。

但入口本身已经足够重要。

因为越狱圈最怕的不是后面难,而是前面没入口。

现在入口出现了。

对安全研究的意义

usbliter8 最值得看的不是“能不能越狱”,而是它展示了一条很典型的现代硬件利用链:

外设控制器 bug → DMA 越界写 → SRAM 破坏 → 启动链对象污染 → 控制流劫持 → BootROM 后利用。

这条链路说明一个现实:

现代设备安全不是只有 CPU、内核、App 沙箱。

外设控制器、DMA、IOMMU、启动链配置,同样是信任根的一部分。

只要启动早期某个外设拥有过大的写内存能力,那么一个看起来很小的控制器 bug,就可能变成整个安全启动链的问题。

这也是 usbliter8 最有含金量的地方。

它不是“USB 有 bug”。

它是在提醒所有硬件平台:

启动链安全必须把外设 DMA 当成一等公民来防。

常见问题解答 (FAQ)

  1. 我应该停止使用我的 iPhone XS 或 11 吗? 不,对大多数用户来说并非如此。usbliter8需要实际持有手机,并通过 USB 连接并置于 DFU 模式。对于日常在家、办公室或旅行使用而言,增加的风险微乎其微,因为安全隔离区会继续保护密码和加密数据。但如果您的关机手机被盗,或者您跨境旅行并可能被进行取证检查,情况就会有所不同。

  2. iOS 18 更新能解决这个问题吗? 不,永远不会。usbliter8利用了 SecureROM 的一个漏洞,该漏洞的代码在代工厂被物理烧录到芯片上。苹果可以通过强化更高层(iBoot、内核、SEP)来减轻一些下游影响,但原始漏洞会一直保留在芯片中,直到设备报废。

  3. iPhone 12、13、14、15 和 16 安全吗? 是的。所有搭载 A14 或更新 SoC 的机型都在 SecureROM 中正确配置了 DART,并且不会暴露 usbliter8 所利用的原始机制。苹果还在 M5 芯片上加入了内存完整性强制执行(该机制在 2026 年被 Anthropic 的 Mythos 破解,这是另一个故事了),并在 iOS 17 和 18 中加入了更成熟的锁定模式。

  1. 我可以通过更改设置来保护自己吗? 部分有效。具体来说,三个措施包括:设置至少 8 位字母数字密码、启用 USB 限制模式(在“设置”>“面容 ID 与密码”>“USB 配件”中关闭)、启用面容 ID 或触控 ID。这些措施单独来看都无法完全阻止 usbliter8 漏洞,但它们结合起来可以显著降低该漏洞对真正攻击者的利用价值。

  2. 攻击用的RP2350板多少钱? 不到 15 美元。树莓派 Pico 2(基于 RP2350)零售价约为 5 美元,而包含线缆和接头的克隆套件在亚马逊和速卖通上的售价不到 15 美元。总而言之,与售价高达数万美元的专业 Cellebrite 工具相比,usbliter8 大大降低了取证攻击和越狱的经济门槛。

  3. usbliter8 可以解锁找到的 iPhone 吗? 不。该漏洞利用程序在 iOS 系统之前运行代码,但无法读取手机的加密内容,也无法绕过安全隔离区内的密码尝试计数器。它可以解锁未签名固件的加载,这对于取证分析和越狱很有用,但无法访问合法用户的个人数据。

要点总结

  • usbliter8 是真实存在的,可以在 Apple A12、A12X、A12Z、S4、S5 和 A13 芯片上永久运行:任何软件补丁都无法将其关闭。

  • 它始终需要物理访问和DFU模式,外加一块价值低于15美元的RP2350主板。这不是远程攻击。

  • 安全隔离区未被攻破:密码、面容 ID 和加密数据受到隔离协处理器的保护。

  • 对于在监控环境下旅行、处理敏感材料或因盗窃而丢失锁定设备的人来说,风险会增加。

  • 真正的缓解措施:设置长字母数字密码,开启 USB 限制模式,如果暴露于病毒环境中,请升级到 A14+ 型号(iPhone 12 或更新机型)。

最后总结

usbliter8 的关键词不是“越狱工具”。

而是:

DWC2 USB 控制器。Setup packet。DOEPDMA。DMA underflow。DART bypass。SecureROM。A12/A13。BootROM exploit。

它的技术核心是:

USB 控制器在处理 Setup packet 时,DMA 指针递增和固定回退逻辑不匹配,造成 underflow 写;A12/A13 的 SecureROM 阶段 DART 配置又给了这个 bug 更大的内存破坏空间,最终让研究者能影响启动链控制流。

这就是它为什么重要。

不是因为它能让你装插件。

而是因为它说明:

即便到了 A12/A13 这一代,Apple 的启动链底部仍然可能存在可被硬件交互触发的真实攻击面。

一句话总结:

iPhone 越狱没有死,只是战场从 iOS 软件漏洞,重新回到了 USB 控制器、DMA 和 BootROM 这种真正底层的地方。