
CVE-2026-84616 および CVE-2026-84607 のバグの発見と修正に関する研究
[!IMPORTANT] このリポジトリはAIエージェントによるリサーチ支援を受けています
[!NOTE]
オープンリサーチ
コントリビューションを歓迎します
iOS 27.0 アドバイザリ 149034、コンポーネント AVEVideoEncoder: 「サンドボックス化されたアプリが カーネル権限で任意のコードを実行できる可能性がある」 — 「競合状態は改善された状態管理によって 対処された。」 本稿では、修正がどこに存在し、何を行うのかを述べる。
答え: com.apple.driver.AppleAVE2 における新しいフレーム単位の状態整合性ガードで、
クライアントの eEncType をセッションの sEnc.eType と比較し、不一致時にフレームを転送する。
チェック対象のフィールドはロックフリーな連鎖によって書き込まれる — ロックによる修正ではなく、
検証による修正である。
修正は GM には入っていない。iOS 27.0 サイクルの beta 2 → beta 4 のステップで入った:
0xfffffff008734d14 ldr w8, [x22, #0x58] ; client eEncType
0xfffffff008734d18 ldr w9, [x19, #0x270] ; session sEnc.eType
0xfffffff008734d1c cmp w8, w9 ; the new state-consistency guard
0xfffffff008734d20 b.ne → divert ; mismatch NEVER reaches frame processing
EncType mismatch with session — beta 2 には存在せず、beta 4 以降で存在。sub_fffffff008733654 を呼び出す。0xfffffff008737f98)、その書き込み元連鎖 (2 レベル、間接ディスパッチで終端) は
ロックヘルパーを一切呼び出さない — 読み取り側と書き込み側は異なるロックドメインに存在する。b2→b4 のスイープでは、AVE_CalcBufSizeOf* バッファサイズ計算関数ファミリ (ピクセル面積、
DPB、LRB、HSC/MCTF 出力など) に 約 22 個の整数オーバーフローガードも追加された:
ave.videoencoder / AppleVideoEncoder.bundle はウィンドウ全体で
diff されていない (修正前のコピーはベータの dyld 共有キャッシュ内に存在する)。[!NOTE]
免責事項
すべての主張は検証可能な成果物を引用している。いずれかを信頼する前に再検証すること。 エクスプロイトコードは含まれていない。修正は iOS 27.0 (24A435) で出荷済みである — このリポジトリは既にパッチ済みのコードを文書化している。 教育目的でのみ使用すること。エクスプロイトコードは含まれていない。
| ステップ | 変更内容 |
|---|
b8 → GM 24A435 | BTI のみ (+0x2168 の __text 増加 = 2148 個の新しい bti 命令、機能面では −40 バイト) |
| b1 → GM | 実コードの +7463 命令 — ベータサイクルが作業を行った |
| b2 → b4 | 修正ステップ: +68 個の新規文字列 = カーネルメモリ強化スイープ + 1 つの新しい状態チェック |
| b4 → b5 | MCTF 機能作業のみ |