iPhoneのBootROM脆弱性、Apple SoC信頼チェーン全体の侵害への道を開く

「usbliter8」と名付けられた、最近公開されたiPhoneのBootROM脆弱性は、AppleのSecureROM実装における重大な欠陥を明らかにしています。この脆弱性により、攻撃者は影響を受けるデバイスのアプリケーションプロセッサ(AP)の信頼チェーン全体を侵害することが可能になります。

Paradigm Shiftが2026年6月18日に公開した研究では、Apple A12およびA13のシステム・オン・チップ(SoC)を標的とした、実際に動作するエクスプロイトが紹介されています。

このエクスプロイトは、USBコントローラーのDMA(ダイレクトメモリアクセス)処理における欠陥と、特定のファームウェアの設定ミスを組み合わせて悪用します。BootROMは変更不可能なため、ソフトウェアアップデートによるパッチ適用はできず、影響を受けるデバイスは永続的に脆弱なままとなります。

iPhoneのBootROM脆弱性

問題の核心は、Appleシリコンに使用されているSynopsys DesignWare USB2(DWC2)コントローラーにあります。この脆弱性は、USB制御転送、特にSetupパケットの処理中に発生します。

USB仕様によれば、各Setupトランザクションは正確に8バイトで構成される必要があります。しかし、このコントローラーは不正な形式や8バイト未満のパケットを受け入れ、4バイト単位でメモリに書き込んでしまいます。

DMAエンジンは実際に書き込まれたデータに基づいてポインタをインクリメントしますが、固定サイズパケットの先頭にリセットするため、不整合が生じます。その結果、12バイト単位で制御されたバッファアンダーフローのプリミティブが発生し、攻撃者が隣接するメモリ領域を上書きできるようになります。

AppleがDMAアドレスレジスタ(DOEPDMA)を設定した方法により、この欠陥が悪用可能になっています。静的なバッファポインタとして機能する代わりに、書き込みのたびにインクリメントする動的な情報源として動作してしまいます。

A12およびA13デバイスでは、SecureROMにDART(デバイスアドレス解決テーブル)の適切な保護が存在しないため、機密性の高いSRAM領域を含む無制限のメモリ書き込みが可能になります。A11などの旧チップは手動DMAリセットによりこれを軽減しており、A14以降の新世代チップはDARTを適切に設定することで悪用を防いでいます。

プログラムカウンター(PC)の制御を獲得する方法は、チップセットによって異なります。A12では、メモリレイアウトが好都合なため、攻撃者がUSBタスクスタック上の保存されたリンクレジスタ(LR)を上書きでき、比較的容易な制御フローハイジャックが可能です。

A13ではポインタ認証(PAC)が導入されており、直接的な悪用が困難になっています。研究者たちは、ヒープ破壊、制御されたゼロ書き込み、重要なシステム構造の操作など、複数のプリミティブを連鎖させることでこれを回避しました。特筆すべきプリミティブの一つは、DARTクリーンアップルーティンから派生したものです。

void dart_stop(unsigned int dart_id)
{
  dart = darts[dart_id];
  mmio_base = dart->info->mmio_base;
  for (int i = 0; i < 16; i += 4) {
    *(_DWORD *)(mmio_base + 0x200 + i) = 0;
  }
}

このプリミティブにより、メモリの制御されたゼロ化が可能になります。これは後にヒープ保護を無効化し、実行フローを操作するために利用されます。DMA書き込みのタイミングを慎重に調整し、タスクスケジューリングの動作を悪用することで、攻撃者は重要なレジスタを破損させることなく任意のメモリ上書きを実現できます。

PC制御を獲得した後、エクスプロイトはSecureROMの権限昇格へと移行します。SecureROMは主にEL0で動作しますが、「SVC 0」などの特定の命令によりEL1への一時的な移行が可能です。

エクスプロイトはブートトランポリン関数を標的とし、DMAを通じて実行可能メモリにシェルコードを注入して署名チェックを回避します。A12では最小限のROPチェーンで実現できますが、A13ではPACの適用により、より高度な技術が必要になります。

エクスプロイト後に行使できる能力は非常に大きなものがあります。攻撃者はブートプロセスを改変し、カスタムUSBハンドラーを注入して、署名されていないiBootを実行させることができます。また、このエクスプロイトは「demotion」(デバイスのセキュリティ状態の低下)や任意のファームウェアイメージのブートなど、カスタムDFUコマンドも導入します。

セキュアエンクレーブプロセッサ(SEP)を直接侵害するものではありませんが、このアタックはシステム全体の信頼境界を弱め、さらなる攻撃を容易にする可能性があります。

重要なのは、この脆弱性がデバイスのライフサイクル全体にわたって持続する、ハードウェアレベルの欠陥という広範なクラスを浮き彫りにしている点です。BootROMは更新できないため、唯一の緩和策はハードウェアの交換となります。

Paradigm ShiftはAppleとの協調的な情報公開を確認しており、新型デバイスへの影響はないものの、A12およびA13ベースの数百万台のデバイスが依然として脆弱な状態にあります。

usbliter8の研究は、現代のモバイルセキュリティにおける重大な現実を浮き彫りにしています。PACやセキュアブートチェーンといった高度な緩和策であっても、微妙なハードウェア設計の欠陥によって損なわれる可能性があるということです。

翻訳元: https://gbhackers.com/iphone-bootrom-vulnerability/

ソース: gbhackers.com