IT 之家 6 月 19 日消息,安全公司 Paradigm Shift 昨日(6 月 18 日)发布博文,宣布在苹果 A12 和 A13 芯片上发现 BootROM 漏洞,将其命名为 usbliter8。

11-inch iPad Pro ( 第一代 )
11-inch iPad Pro ( 第二代 )
12.9-inch iPad Pro ( 第三代 )
12.9-inch iPad Pro ( 第四代 )
Apple Watch SE ( 第一代 )
Apple Watch Series 4
Apple Watch Series 5
iPad ( 第 9 代 )
iPad ( 第 8 代 )
iPad Air ( 第 3 代 )
iPad mini ( 第 5 代 )
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone SE ( 第 2 代 )
iPhone XR
iPhone XS
iPhone XS Max
根据博文内容,该漏洞利用苹果 A12 和 A13 芯片内置的 DWC2 USB 控制器硬件 Bug 与特定固件配置缺陷,实现应用处理器启动链的完全攻陷。
该控制器在接收 USB Setup 包时采用环形 DMA 缓冲机制:每接收一个 8 字节 Setup 包,DMA 地址指针递增 8 字节;但接收第四个包时,控制器会尝试将指针回退 24 字节,从而实现环形复位。
然而控制器也接受小于 8 字节的包(但始终按 4 字节对齐存储),导致指针递增量(实际写入大小)与固定递减量(24 字节)不匹配,形成 12 字节步进的缓冲欠载(buffer underflow)原语(primitive)。
在 A12 上 ds,dUSB 控制器的 DMA 缓冲区位于堆中,紧邻 USB 任务栈。通过欠载原语覆盖栈上保存的 LR 寄存器,当调度器切换回 USB 任务时,即可劫持 PC。
A13 则因引入 PAC(指针认证)和堆元数据校验而复杂化。攻击者需分多步绕过:
首先覆盖 DART(设备地址重映射表)相关数据结构,利用 DART 清理例程中的零写入原语清空全局 DART 指针,避免堆校验崩溃;
随后利用 MMIO 寄存器写入 0xF,覆盖全局 panic 计数器,使后续 panic 进入无限循环而非重启;
再精确控制 DMA 写入时机,在 USB 任务运行时覆写其任务结构中的临界区深度字段,触发带 IRQ 的 panic 进入无限循环;
最后在无限循环中继续 DMA 写操作,覆盖 BSS 段中的 USB IRQ 处理函数指针,获得完全 PC 控制。
获得代码执行后,攻击者利用 SecureROM 中罕见的 EL1 模式切换点(SVC 0 指令)。A12 上通过 ROP 链将 DMA 目标地址设为 boot trampoline 区域(只读执行区,但 DMA 可写),写入 shellcode 后跳转至 EL1 权限执行。
尽管该漏洞无法通过软件修复,但利用条件苛刻,需要物理接触设备,且不会直接威胁安全隔区处理器。苹果已收到通报,建议用户升级至 A14 及以上芯片设备以确保安全。
IT 之家附上参考地址