
يستكشف القناة الجانبية لـ CVE-2026-0075 في Android ContactsProvider باستخدام PoC بدون أذونات، مما يتيح تحليل السبب الجذري والمقارنة بين النسخة المُصحَّحة والنسخة المعرضة للثغرة.
نموذج أندرويد بحثي مُعدّ للبيئات المخبرية الخاضعة للرقابة، يهدف إلى تقييم السلوك القابل للملاحظة المرتبط بـ CVE-2026-0075 في ContactsProvider2.
CVE-2026-0075 هي ثغرة رفع صلاحيات محلية في نظام أندرويد تقع في ContactsProvider2. يصف الإشعار العام مسارًا محتملًا للوصول إلى قاعدة بيانات جهات الاتصال عبر حقن SQL، دون أي تفاعل من المستخدم. يُصنّف أندرويد المشكلة بمستوى مرتفع (High) ويحدد Android 14 و15 و16 و16-qpr2 كإصدارات AOSP متأثرة. الأجهزة التي تبلغ مستوى تصحيح الأمان 2026-06-05 أو أحدث تعالج مشكلات نشرة يونيو 2026.
التطبيق المرفق هو PoC مستقل بلغة Java/Android لا يصرّح عمدًا بأيٍّ من صلاحيتي READ_CONTACTS أو WRITE_CONTACTS. وهو مصمم لمساعدة الباحثين المصرح لهم على مقارنة سلوك حدود الصلاحيات ومعالجة الاستثناءات على بنى خاضعة للرقابة.
هذا المستودع مخصص لأغراض البحث الأمني المصرح به فقط.
لا يدّعي المشروع وجود مسار استغلال شامل. فهو يوثّق ملاحظة خاضعة للرقابة يجب التحقق منها مقابل بنية الهدف ومستوى تصحيحها وتنفيذها الخاص بـ ContactsProvider.
.
├── no-permission-probe/ Standalone Android application and PowerShell helpers
│ ├── build.ps1 Compiles, packages, aligns, and signs a debug APK
│ ├── run-poc.ps1 Installs the APK and starts the controlled probe
│ ├── AndroidManifest.xml No READ_CONTACTS or WRITE_CONTACTS declaration
│ ├── res/ Android resources
│ └── src/ Application source
├── CONTRIBUTING.md Contribution and research-data requirements
├── SECURITY.md Vulnerability reporting guidance
└── .gitignore Local build and IDE exclusions
الإصلاح العلني في AOSP، bb9f36b3ff6d42136afb61d527e1e8f67242fe32، يحمل عنوان Fix side channel attacks in CP2. يعدّل ContactsProvider2 بحيث يُزيل رسائل SQLiteException المرتبطة بـ JSON من استجابات المتصلين الذين لا يملكون صلاحية READ_CONTACTS، ويجعل تحميل المؤشر (cursor materialization) يقع ضمن مسار معالجة الاستثناءات. صُمم هذا الـ PoC لإجراء مقارنة سلوكية خاضعة للرقابة قبل الإصلاح وبعده؛ وهو لا يغني عن التحقق من صحة التصحيح.
javac وjar وkeytool في PATHandroid-3536.0.0adb)عيّن ANDROID_HOME إلى جذر SDK قبل البناء. قد تستخدم أدواتك المحلية أيضًا ANDROID_SDK_ROOT، لكن النصوص البرمجية المرفقة تقرأ ANDROID_HOME.
$env:ANDROID_HOME = 'C:\Android\Sdk'
من المسار الجذري للمستودع:
Set-Location .\no-permission-probe
.\build.ps1
يُكتب ملف APK الموقّع للتصحيح (debug APK) في no-permission-probe\build\probe.apk. ودليل build مستثنى من التحكم بالإصدارات.
شغّل محاكيًا أو جهاز اختبار مصرحًا به لا يحتوي إلا على جهات اتصال اصطناعية.
تأكد من الجهاز ومستوى التصحيح:
adb devices
adb shell getprop ro.build.version.security_patch
قم ببناء التطبيق ثم شغّله:
Set-Location .\no-permission-probe
.\run-poc.ps1
راجع فقط واجهة التطبيق ووسم السجل المقيّد:
adb logcat -s CVE20260075Probe:I
يختار مساعد التشغيل URI محددًا بالصيغة data/<id> من جهاز الاختبار المتصل ويطلق النشاط (activity) بمنح قراءة. لا تستخدمه في الحالات التي لا يكون فيها هذا السلوك مصرحًا به صراحةً.
للحصول على نتيجة قابلة للدفاع عنها، سجّل ما يلي مع كل تشغيل:
قارن بين صورة مخبرية معروفة بكونها معرّضة للثغرة وصورة تحتوي على تصحيح يونيو 2026. إشارة المعالجة المتوقعة هي أن أخطاء SQLite المرتبطة بـ JSON والمؤهلة (qualifying) والتي تُعاد إلى المتصلين الذين يفتقرون إلى صلاحية READ_CONTACTS تُستبدل برسالة عامة؛ غير أن هذا لا يثبت بحد ذاته غياب كل مؤشر (oracle) قابل للملاحظة.
تم الكشف عن هذه الثغرة (CVE) ومعالجتها علنًا في نشرة أمان أندرويد لشهر يونيو 2026. بالنسبة للثغرات الحالية في منتجات أندرويد، أبلغ عنها مباشرة عبر عملية Android Security. راجع SECURITY.md للحصول على إرشادات خاصة بهذا المستودع.
bb9f36b3ff6d42136afb61d527e1e8f67242fe32مرخّص بموجب رخصة Apache 2.0.