安全公司 Paradigm Shift 在昨天(6 月 18 日)发布了一篇技术博文,公布了他们在苹果 A12 和 A13 芯片上发现的一个 BootROM 漏洞。他们将这个漏洞命名为 usbliter8。坦白讲,这个名字听起来就带着一股“可以直接绕过整个安全启动链”的狠劲。

先来看看哪些设备会受到影响。这个漏洞主要存在于采用 A12 和 A13 芯片的设备,基本上就是 iPhone XS 系列、XR 和 iPhone 11 系列,以及搭载 S4 和 S5 芯片的几款 iPad 和 Apple Watch。具体清单如下:

这个漏洞的根基在哪里呢?简单来说,它瞄准的是 A12 和 A13 芯片中集成的 DWC2 USB 控制器。关键在于这个控制器自身的一个硬件 bug,再搭配上特定的固件配置缺陷,导致整个应用处理器的启动链都能被攻破。我们来看一下具体机制。

这个控制器在处理 USB Setup 包时,使用的是环形 DMA(直接内存访问)缓冲机制。它每收到一个 8 字节的 Setup 包,DMA 地址指针就递增 8 个字节。但问题在于,当它接收到第四个包时,控制器会试图将指针回退 24 个字节,以实现环形复位。然而,整个机制在控制器的逻辑上存在一个漏洞:它同样接收小于 8 字节的包(但存储时是按 4 字节对齐的),这样一来,指针每次实际写入的步进量(小于8)就与固定回退量(24 字节)产生了不匹配。结果就是形成了一个12字节步进的缓冲欠载原语。这相当于是把原本稳固的环形缓冲区撕开了一个口子。

在 A12 上,这个 USB 控制器的 DMA 缓冲区分配在堆上,紧邻着 USB 任务栈。攻击者就能利用这个“欠载”原语去覆盖栈上保存的 LR(链接寄存器)值。一旦调度器切换回 USB 任务,就能直接劫持 PC(程序计数器)指针,为所欲为。

到了 A13 上,事情变得更复杂了,因为苹果引入了 PAC(指针认证)和堆元数据校验。想绕过这些防护,攻击者需要分多步走,像解一道复杂的几何证明题一样:

尽管这个漏洞听起来很吓人,但由于它是 BootROM 级别的缺陷,无法通过软件更新来修复。不过,值得松一口气的是,它的利用条件相当苛刻:必须物理接触到设备,而且它不会直接威胁到安全隔区处理器。苹果已经收到了这个漏洞的通报。对于用户来说,最务实的建议就是:如果你还在纠结要不要升级,不妨直接换一台采用 A14 或更新芯片的设备,这才是一劳永逸的终极解决方案。

附上参考地址

本文转载于:https://www.itren.com/digital/184803.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。