苹果A12/A13芯片漏洞:无法软件修复,影响iPhone 11系列
苹果A12/A13芯片BootROM漏洞Usbliter8曝光:硬件级缺陷无法通过软件修复
6月19日消息,安全研究机构Paradigm Shift于6月18日发布博文,披露了苹果A12与A13芯片中存在一个名为“usbliter8”的BootROM漏洞。该漏洞属于硬件层面缺陷,无法通过常规的软件更新或固件补丁进行修复,对搭载相关芯片的设备构成持久性安全威胁。
受影响设备涵盖所有采用A12及A13芯片的苹果产品,具体包括iPhone XS系列、iPhone XR、iPhone 11全系,以及配备S4和S5芯片的iPad与Apple Watch。以下为完整设备清单:
- 11英寸iPad Pro(第一代)
- 11英寸iPad Pro(第二代)
- 12.9英寸iPad Pro(第三代)
- 12.9英寸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控制器硬件缺陷,结合固件配置层面的薄弱环节,能够完全攻陷应用处理器的启动链(Boot Chain)。看似危险,我们来逐层拆解其机制。
关键点在于USB控制器接收USB Setup包时采用的环形DMA缓冲机制。每当接收到一个8字节的Setup包,DMA地址指针自动递增8字节。但当处理到第四个包时,控制器试图将指针回退24字节以完成环形复位。问题出现在:控制器同样接受小于8字节的数据包(但始终按4字节对齐存储),导致指针实际递增量(写入大小)与固定递减量(24字节)无法匹配,进而产生一个12字节步进的缓冲区欠载(buffer underflow)原语。这个原语构成了漏洞的触发起点。
在A12芯片上,DWC2 USB控制器的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权限执行。
需要指出的是,尽管该漏洞无法通过软件修复,但实际利用条件极为苛刻:攻击者必须拥有设备的物理接触权限,且不会直接威胁安全隔区处理器(Secure Enclave)。苹果已获悉该漏洞。建议用户换用搭载A14及以上芯片的设备以确保安全性。若手头仍在使用iPhone XS或iPhone 11系列,建议关注后续硬件迭代信息。
附上参考地址
Introducing usbliter8
