
منفذ Android مُتحقَّق منه لـ CVE-2026-98260 لجهاز Xiaomi 15 dada OS4.0.0.22.XOCCNXM
dada) Android 17 移植إثبات مفهوم (PoC) مؤقت لتصعيد الصلاحيات محليًا، يستهدف OS4.0.0.22.XOCCNXM وبناء النواة المطابق له بدقة. تم إعادة إنتاج CVE-2026-98260 على جهاز حقيقي انطلاقًا من ADB shell عادي، والحصول على SELinux Permissive وUID/GID 0 ضمن دورة الإقلاع نفسها.
| العنصر | القيمة المتحقق منها |
|---|---|
| الجهاز | Xiaomi 15، الاسم الرمزي dada |
| البرنامج الثابت | OS4.0.0.22.XOCCNXM، Android 17 |
| البصمة | Xiaomi/dada/dada:17/CP2A.260605.016/OS4.0.0.22.XOCCNXM:user/release-keys |
| النواة | 6.6.118-android15-8-gb9cc6ec16bc8-abogki536571621-4k |
| نقطة الانطلاق | ADB shell عادي مصرَّح به، UID 2000، SELinux Enforcing |
| النتيجة | جلسة ADB جديدة تحصل عبر عميل مؤقت على UID/GID 0 وSELinux Permissive |
هذه النتيجة لا تتضمن Linux capabilities كاملة: قيمة CapEff=0 في shell الجذر المؤقت. يستخدم الكود المصدري كتابة تصفير مضبوطة بحجم 8 بايت لتغيير UID/GID وحالة SELinux، دون تعيين بتات capability إلى 1. يوضّح نطاق التحقق شروط النجاح والقيود.
ثبّت Android Platform Tools وAndroid NDK r29 (29.0.14206865) وr28.2 (28.2.13676358) على Windows. تُبنى الحمولة الرئيسية بشكل ثابت باستخدام r29/API 35؛ ويُبنى المساعد العام order1-churn باستخدام r28.2/API 35. إذا كان NDK في مجلد آخر، يمكن تمرير -Ndk29 و-Ndk28.
powershell -NoProfile -ExecutionPolicy Bypass -File .\build.ps1 -VerifyReference
يقارن -VerifyReference نواتج إعادة البناء الأربعة واحدًا واحدًا عبر SHA-256 مع الثنائيات المنشورة في bin/. التجزئات الكاملة تثبّت إصدار النشر؛ ولا تتصل عملية البناء بالهاتف.
وصّل جهازًا مطابقًا للهدف بدقة وصرّح به، وأضف adb إلى PATH:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run_98260.ps1
إذا وُجدت عدة أجهزة ADB، مرّر -Serial <رقم تسلسل الجهاز>. يتحقق السكربت من الاسم الرمزي للجهاز، والبصمة الكاملة، والنواة، وتجزئات الثنائيات الأربعة المحلية وعلى الجهاز، وboot ID، ثم يشغّل مرحلتي SELinux وUID/GID بشكل منفصل. لا يُبلّغ عن النجاح إلا بعد أن تؤكد جلسة ADB جديدة UID 0 وPermissive. افتراضيًا يحاول كل مرحلة ثلاث مرات كحد أقصى؛ وعند مواجهة PARKED يتوقف، ولا يجوز استرداد الـ zombie الخطير الخاص به يدويًا. تُحفظ المخرجات الخام محليًا فقط في logs/ المتجاهَل من Git.
بعد النجاح، شغّل أمرًا واحدًا بصلاحية UID 0 ضمن دورة الإقلاع الحالية:
adb shell /data/local/tmp/dada98260-su -c id
يعتمد الاستغلال على استرداد الصفحات الاحتمالي، لذا لا يمكن ضمان نجاحه في كل محاولة. بعد إعادة التشغيل تزول تعديلات الذاكرة والخدمة المؤقتة. لا يكتب هذا المستودع أي أقسام، ولا يعلن الدعم لأي برنامج ثابت آخر أو لصورة نواة مختلفة رغم تطابق سلسلة الإصدار.
يحتوي المستودع فقط على الكود المصدري لـ CVE-2026-98260، وبرامج جهاز قابلة لإعادة البناء، ووقائع النجاح المنقّحة. لم تُرفع صور boot أو الأقسام الأصلية، ولا تقارير الأخطاء (bugreport)، ولا أرقام تسلسل الأجهزة، ولا العناوين وقت التشغيل، ولا السجلات الخام، ولا الجولات الفاشلة. الكود والتوثيق الأصليان في هذا المشروع مرخّصان بموجب رخصة MIT؛ أما تراخيص الطرف الثالث الخاصة بـ Android NDK المرتبطة بالثنائيات المُجمّعة مسبقًا فموضحة في الإشعارات.