
DirtyFrag CVE-2026-43284 अनुसंधान 5.4-qgki डिवाइस के लिए
दिनांक: 2026-10-07/08 डिवाइस: Redmi Note 11 Pro 5G (veux, 5.4.274-qgki) और POCO X5 5G (moonstone, 5.4.191-qgki) SoC: Snapdragon 695 (SM6375)
| CVE | स्थिति | टिप्पणियाँ |
|---|---|---|
| CVE-2026-43284 (DirtyFrag) | ❌ समाप्त | MSG_SPLICE_PAGES (कर्नेल 6.5+) की आवश्यकता है |
| CVE-2026-24088 (Qualcomm fastboot) | ⚠️ बूटलोडर-विशिष्ट | TheFliss: उनके डिवाइस पर "unknown command" |
| CVE-2022-2602 (io_uring UAF) | ❌ समाप्त | कर्नेल रजिस्टर पथ को ब्लॉक करता है (EFAULT/EINVAL) |
| CVE-2022-20421 (BadSpin) | ❌ प्रयास किया, सफलता नहीं | बिल्ड ठीक है, रेस जीते बिना लूप करता रहता है |
| CVE-2023-20938 (binder UAF) | ✅ भेद्य (दोनों) | अभी तक प्रयास नहीं किया गया |
| CVE-2023-4622 (af_unix UAF) | ✅ भेद्य (दोनों) | अभी तक प्रयास नहीं किया गया |
| CVE-2026-43499 (GhostLock) | ❓ संभवतः भेद्य | GhostLock ऐप डिज़ाइन के अनुसार 5.4 पर काम नहीं करता |
| KGSL CVE (5x) | ❓ संभवतः भेद्य | 2024-38399 में writeup+PoC है |
निर्णय: 5.4 पर संभव नहीं।
बग 5.4 में मौजूद है (कोड 4.11 से), लेकिन एक्सप्लॉइट के लिए page-cache write primitive हेतु
MSG_SPLICE_PAGES UDP समर्थन आवश्यक है। यह कर्नेल 6.5 में पेश किया गया था।
5.4 पर, UDP में splice() एक सामान्य कॉपी करता है — कोई साझा पेज अटैचमेंट नहीं।
CVE-2026-43500 (RxRPC वेरिएंट) भी लागू नहीं — RxRPC कोड 6.8 में पेश किया गया।
रेपो: https://github.com/HirokiAkihiko/dirtyfrag-research
निर्णय: बूटलोडर-विशिष्ट, सार्वभौमिक नहीं।
Qualcomm ABL में बग: fastboot oem set-gpu-preemption तर्कों को सैनिटाइज़ नहीं करता,
जिससे कर्नेल cmdline में androidboot.selinux=permissive इंजेक्ट किया जा सकता है।
परीक्षण परिणाम (TheFliss): FAILED (remote: 'unknown command') — उनका बूटलोडर
कमांड को लागू नहीं करता। यह CVE विशिष्ट ABL बिल्ड पर निर्भर करता है।
निर्णय: इन डिवाइसों पर समाप्त। कर्नेल सक्रिय रूप से रजिस्टर पथ को ब्लॉक करता है।
किया गया कार्य:
निष्कर्ष:
CONFIG_IO_URING=y की पुष्टिio_uring_setup सादे फ्लैग के साथ काम करता है (SQPOLL ब्लॉक → CAP_SYS_ADMIN आवश्यक)IORING_REGISTER_FILES → EFAULT (सुसंगत, कच्चे SVC के माध्यम से भी)IORING_REGISTER_BUFFERS → EINVALUAF primitive के लिए सफल IORING_REGISTER_FILES आवश्यक है। इसके बिना,
एक्सप्लॉइट श्रृंखला आगे नहीं बढ़ सकती।
बंडल: ~/workspace/cve-2022-2602-bundle/ (स्रोत, बाइनरी, डायग्नोस्टिक्स)
निर्णय: बिल्ड और रन होता है, लेकिन veux पर सफल नहीं होता।
किया गया कार्य:
mateusvdcastro/badspinexploit.c में SPL जाँच हटाई गई (find_dev_config())dev_config.h में veux डिवाइस प्रविष्टि जोड़ी गई (मॉडल 2201116SG, Android 13, कर्नेल 5.4.274, SPL 2024-12)libbadspin.so (345K, ARM64)TEST_VULN=1 के साथ LADB के माध्यम से डिवाइस पर परीक्षणपरीक्षण परिणाम: dev_config_init शुरू में विफल रहा (SPL माह बेमेल: प्रविष्टि में
month=1 था, डिवाइस में 2024-12 है)। GitHub के माध्यम से ठीक किया गया। सुधार के बाद, एक्सप्लॉइट चलता है और
भेद्यता को ट्रिगर करता है ("Trigger use-after-free") लेकिन रेस कंडीशन जीते बिना
अनिश्चित काल तक लूप करता रहता है।
रेपो: https://github.com/HirokiAkihiko/badspin-veux (निजी)
bdc1c5fac982 और 4df153652cc4 Xiaomi स्रोत में मौजूद नहीं4821df2ffe38 मौजूद नहीं; skb_peek_tail अभी भी लॉकलेसcurrent->pi_blocked_on = NULL मौजूद है)संस्करण लेबल भ्रामक होते हैं। veux-r-oss को 5.4.274 लेबल किया गया है, लेकिन इसमें वे stable 5.4.y बैकपोर्ट्स गायब हैं जो होने चाहिए (2023-06 के binder फिक्स, 2023-08 का af_unix फिक्स)। हमेशा कोड स्तर पर सत्यापित करें, संस्करण संख्या से नहीं।
~/workspace/cve-2022-2602-bundle/~/workspace/cve-hunt/