Уязвимость BootROM в iPhone на чипах A12 и A13 позволяет полностью скомпрометировать цепочку загрузки

iPhone

Исследовательская компания Paradigm Shift опубликовала 18 июня 2026 года детали эксплуатации уязвимости "usbliter8" в загрузочном ПЗУ (BootROM) процессоров Apple A12 и A13. Проблема затрагивает аппаратную реализацию USB-контроллера и конфигурацию прошивки, что делает её неустранимой средствами программного обновления. Поскольку код BootROM неизменяем, единственным способом защиты для владельцев уязвимых устройств становится замена аппаратной платформы.

Детали уязвимости

В основе уязвимости лежит ошибка в работе контроллера Synopsys DesignWare USB2 (DWC2), используемого Apple в своих однокристальных системах. Проблема возникает на этапе обработки управляющих USB-транзакций (Setup-пакетов). Согласно спецификации USB, каждый такой пакет должен содержать ровно восемь байт. Однако, как выяснили исследователи, контроллер принимает и урезанные (меньше восьми байт) пакеты, записывая их в оперативную память порциями по четыре байта. Движок прямого доступа к памяти (DMA) при этом увеличивает указатель на фактически записанный объём данных, но при сбросе возвращает его к началу фиксированного буфера, создавая несоответствие. Это приводит к управляемому "опустошению" буфера (buffer underflow) с шагом в 12 байт, что позволяет атакующему перезаписывать соседние области памяти.

Критическим фактором эксплуатации становится настройка регистра адреса DMA (DOEPDMA) в конфигурации Apple. Вместо статического указателя на буфер этот регистр ведёт себя как динамический источник истины, увеличиваясь после каждой записи. На чипах A12 и A13 отсутствие надлежащей защиты DART (Device Address Resolution Table) в SecureROM дополнительно открывает возможность неограниченной записи в память, включая чувствительные области статической оперативной памяти (SRAM). Более ранние процессоры, такие как A11, смягчают проблему за счёт ручного сброса DMA, а в поколениях A14 и новее DART настроена корректно, что делает уязвимость неэксплуатируемой.

Достижение контроля над счётчиком команд (PC) различается в зависимости от чипсета. На A12 атакующий может напрямую перезаписать сохранённый регистр связи (LR) в стеке задачи USB благодаря благоприятному расположению памяти, что даёт прямой захват потока управления. В случае с A13 ситуация усложняется внедрением указателя аутентификации (PAC), который применяется к сохранённым в стеке LR. Исследователям пришлось обойти несколько механизмов защиты. Они скомбинировали примитивы для повреждения кучи, управляемой записи нулевых значений и изменения критических системных структур. В ходе анализа был выявлен примитив, полученный из процедуры очистки DART (dart_stop): эта функция обнуляет 16 байт в MMIO-области, что используется для нейтрализации проверок целостности кучи и последующего управления выполнением. Дополнительно, с помощью управляемой записи значения 0xF атакующие перезаписывают глобальный счетчик паники, переводя систему в бесконечный цикл при следующем сбое, а не перезагрузку, что открывает окно для дальнейших действий.

После получения контроля над PC исследователи переходят к повышению привилегий в SecureROM. Хотя SecureROM на A12 и A13 работает в основном в непривилегированном режиме EL0, инструкция "SVC 0" позволяет временно переключиться в привилегированный режим EL1. Эксплойт нацелен на функцию-трамплин загрузчика, в которую через DMA внедряется шелл-код с обходом проверок подписи. На A12 это достигается короткой ROP-цепочкой (атака с возвратом к библиотечному коду), а на A13 - более сложными методами из-за PAC. В конечном итоге атакующий получает возможность модифицировать процесс загрузки, инжектировать собственные обработчики USB-запросов и запускать неподписанный iBoot. Внедрённые кастомные DFU-команды включают "понижение" (demotion) уровня безопасности устройства и загрузку произвольных образов прошивки.

Как отмечают в Paradigm Shift, хотя уязвимость напрямую не затрагивает Secure Enclave Processor (SEP), она ослабляет общесистемные границы доверия и может облегчить дальнейшие атаки на SEP. Компания подтвердила, что провела скоординированное раскрытие информации с Apple. Устройства на базе A14 и новее не подвержены уязвимости, однако миллионы гаджетов с A12 и A13 остаются уязвимыми навсегда. Исследователи подчеркивают, что эта работа демонстрирует ограничения даже современных механизмов защиты, таких как PAC и безопасные цепочки загрузки, перед тонкими аппаратными ошибками проектирования, заложенными на этапе разработки кристалла.

Ссылки

Комментарии: 0