
CVE-2026-28992 IOHIDFamily FastPathUserClient रेस कंडीशन PoC — सुरक्षा अनुसंधान
सुरक्षा अनुसंधान भंडार। दो PoC ऐप्स जो iOS 18.7.1 और उससे पहले के संस्करणों पर IOHIDFamily के FastPathUserClient में रेस कंडीशन का प्रदर्शन करते हैं।
⚠️ दोनों PoC कर्नेल पैनिक करेंगे और आपके डिवाइस को रीबूट कर देंगे। पहले अपना काम सहेज लें।
| क्षेत्र | विवरण |
|---|
| CVE | CVE-2026-28992 |
| घटक | IOHIDFamily — IOHIDEventServiceFastPathUserClient |
| प्रकार | मेमोरी भ्रष्टाचार (रेस कंडीशन / UAF) |
| पहुँच योग्य | सामान्य ऐप सैंडबॉक्स से, शून्य अधिकार आवश्यक |
| पैच किया गया | iOS 18.7.9 / iOS 26.5 |
| शोधकर्ता | Johnny Franks (@zeroxjf) |
sel0 (खोलें/गेट) कॉलर द्वारा प्रदान किए गए OSDictionary में FastPathHasEntitlement और FastPathMotionEventEntitlement की जाँच करता है, न कि initWithTask के दौरान संग्रहीत अधिकार फ़्लैग्स की। एक सैंडबॉक्स्ड ऐप अपने इनपुट डिक्शनरी में उन कुंजियों को शामिल करके गेट पार करता है।
यहाँ से दो वेक्टर अनुसरण करते हैं:
UAFPoc/UAFPoc.xcodeproj
रेस: close (sel1) बिना लॉक के प्रदाता स्थिति को छोड़ देता है और ऑफसेट +0x109 को साफ़ करता है। copyEvent (sel2) प्रति-कनेक्शन लॉक के तहत ऑफसेट +0x108 की जाँच करता है, फिर प्रदाता में कॉल करता है। एक ही प्रदाता से कई कनेक्शनों का मतलब है कि close और copyEvent एक ही साझा प्रदाता-पक्ष वस्तुओं पर अलग-अलग लॉकिंग डोमेन में चलते हैं।
क्रैश प्रकार:
AOPPanicPoc/AOPPanicPoc.xcodeproj
रेस: mach_port_destroy async 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 खोलेंAOP संस्करण:
AOPPanicPoc/AOPPanicPoc.xcodeproj खोलेंडिवाइस रीबूट होने के बाद:
Panic लॉग (.ips फ़ाइल) ढूंढेंpanic-logs/ में सहेजें और विश्लेषण के लिए कमिट करेंवैकल्पिक रूप से टर्मिनल के माध्यम से:
# After reboot, pull the log
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 | सार्वजनिक PoC कोड जारी किया गया |
अनपैच किए गए वेरिएंट या संबंधित बग्स की रिपोर्ट यहाँ की जा सकती है: 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 → write kernel memory | अनपैच्ड (18.7.7 में ठीक किया गया) |
केवल शैक्षिक और जिम्मेदार खुलासा उद्देश्यों के लिए।