
CVE-2026-28992 IOHIDFamily FastPathUserClient شرط السباق PoC — بحث أمني
مستودع بحث أمني. تطبيقان لإثبات المفهوم يوضحان ظروف السباق في IOHIDFamily's FastPathUserClient على iOS 18.7.1 والإصدارات الأقدم.
⚠️ كلا التطبيقين سيؤديان إلى تعطل النواة (kernel panic) وإعادة تشغيل جهازك. احفظ عملك أولاً.
| الحقل | التفاصيل |
|---|---|
| CVE | CVE-2026-28992 |
| المكون | IOHIDFamily — IOHIDEventServiceFastPathUserClient |
| النوع | فساد الذاكرة (ظرف سباق / استخدام بعد التحرير) |
| يمكن الوصول إليه من | منطقة الحماية العادية للتطبيق، بدون أي صلاحيات مطلوبة |
| تم تصحيحه في | iOS 18.7.9 / iOS 26.5 |
| الباحث | Johnny Franks (@zeroxjf) |
يتحقق sel0 (الفتح/البوابة) من FastPathHasEntitlement و FastPathMotionEventEntitlement في OSDictionary الذي يوفره المتصل بدلاً من أعلام الصلاحيات المخزنة أثناء initWithTask. يمكن لتطبيق في وضع الحماية اجتياز البوابة عن طريق تضمين هذه المفاتيح في قاموس الإدخال الخاص به.
يتبع من ذلك متجهان:
UAFPoc/UAFPoc.xcodeproj
ظرف السباق: يقوم close (sel1) بإسقاط حالة المزوّد ومسح الإزاحة +0x109 بدون قفل. يقوم copyEvent (sel2) بفحص الإزاحة +0x108 تحت قفل لكل اتصال، ثم يستدعي المزوّد. اتصالات متعددة لنفس المزوّد تعني أن close وcopyEvent يعملان في مجالات قفل مختلفة على نفس الكائنات المشتركة على جانب المزوّد.
نوع الانهيار:
AOPPanicPoc/AOPPanicPoc.xcodeproj
ظرف السباق: يؤدي mach_port_destroy إلى تشغيل didTerminate → teardown غير المتزامن، غير المتزامن مع مسارات الفتح المتزامنة sel0 على الاتصالات الأخرى. يقوم teardown بتحرير الحالة الموجهة للمزوّد بينما تقوم سلاسل الفتح بتكرارها. كما أنه يُشبع صندوق بريد المزوّدات المدعومة بـ SPU → انتهاء مهلة مراقب AOP.
git clone https://github.com/clogan9019-dotcom/IOHIDFamily-PoC-Research.git
cd IOHIDFamily-PoC-Research
نموذج UAF:
UAFPoc/UAFPoc.xcodeproj في Xcodeنموذج AOP:
AOPPanicPoc/AOPPanicPoc.xcodeproj في Xcodeبعد إعادة تشغيل الجهاز:
Panic (ملف .ips)panic-logs/ وقم بإرساله للتحليلبدلاً من ذلك عبر الطرفية:
# بعد إعادة التشغيل، اسحب السجل
idevicecrashreport -u <UDID> ./panic-logs/
على A18 (iPhone 16e) يجب أن ترى أحد:
MTE tag check fault — نموذج UAF يقوم بتحرير وإعادة تخصيص كائن كومة موسومAOP watchdog timeout — نموذج AOP يقوم بإشباع صندوق بريد SPUالحقول الرئيسية التي يجب ملاحظتها:
Kernel version: Darwin Kernel Version ...
Hardware Model: iPhone17,5
panic(cpu N ...): <the actual panic string>
Backtrace:
... IOHIDEventServiceFastPathUserClient ...
أسماء الدوال في تتبع الاستدعاءات تخبرك بالضبط أي مسار كود تم تشغيله.
| التاريخ | الحدث |
|---|---|
| غير معروف | تم اكتشاف الثغرة بواسطة Johnny Franks (@zeroxjf) |
| 11 مايو 2026 | تم التصحيح في iOS 18.7.9 / iOS 26.5 |
| 21 يونيو 2026 | تم إصدار كود الإثبات العام |
يمكن الإبلاغ عن النماذج غير المصححة أو الثغرات ذات الصلة على: https://security.apple.com/submit
بالنسبة لثغرات النواة: صف المكون، خطوات إعادة الإنتاج، نوع الانهيار، وأرفق سجل الانهيار .ips.
لأغراض تعليمية والإفصاح المسؤول فقط.
| CVE | المكون | الحالة على 18.7.1 |
|---|
| CVE-2025-43510 | AppleM2ScalerCSCDriver (DarkSword Stage 5) | غير مصحح (تم الإصلاح في 18.7.2) |
| CVE-2026-28992 | IOHIDFamily FastPathUserClient | غير مصحح (تم الإصلاح في 18.7.9) |
| CVE-2026-43655 | AppleM2ScalerCSCDriver OOB read | غير مصحح ولم يتم ترحيله إلى 18.x أبدًا |
| CVE-2026-20687 | Kernel UAF → كتابة ذاكرة النواة | غير مصحح (تم الإصلاح في 18.7.7) |