
بيئة مختبرية قابلة للتكرار لنظام أندرويد توضح CVE-2026-0023، وهو تجاوز ثقة ملكية التحديث في PackageInstaller. يتضمن ثلاثة تطبيقات لملاحظة السلوك الضعيف وفهم التصحيح.
بيئة مختبر أندرويد كاملة لإعادة إنتاج ودراسة CVE-2026-0023.
يوضح هذا المستودع كيف يسمح CVE-2026-0023 لمثبت عادي بالتأثير على علم تثبيت داخلي في أندرويد يجب أن يتحكم به النظام فقط، مما يؤدي إلى إخفاء تحذير ملكية التحديث في أندرويد أثناء تحديثات التطبيقات.
يحتوي المشروع على ثلاثة تطبيقات أندرويد تمثل سير عمل واقعي لملكية التحديث وتوفر بيئة قابلة لإعادة الإنتاج لمراقبة السلوك الضعيف.
قدمت أندرويد ملكية التحديث لمساعدة التطبيقات ومتاجر التطبيقات وبيئات المؤسسات في الحفاظ على سلسلة تحديث موثوقة.
عندما يكون للتطبيق مالك تحديث مسجل، يحذر أندرويد المستخدم إذا حاول مثبت آخر تحديث ذلك التطبيق.
في الظروف العادية، يخبر هذا التحذير المستخدم بأن التطبيق يتلقى التحديثات عادة من مصدر مختلف.
يؤثر CVE-2026-0023 على تدفق تثبيت الحزم في أندرويد داخل PackageInstallerService#createSessionInternal.
ترتبط المشكلة بمعالجة علم التثبيت الداخلي INSTALL_FROM_MANAGED_USER_OR_PROFILE.
في الإصدارات الضعيفة، لم يتم مسح هذا العلم بشكل صريح قبل أن يتحقق أندرويد مما إذا كان التثبيت مرتبطًا فعليًا بمستخدم مُدار أو ملف تعريف مُدار.
نتيجة لذلك، يمكن لمثبت عادي التأثير على سلوك ملكية التحديث ويسبب إخفاء تحذير ملكية التحديث المتوقع.
يوضح هذا المستودع الفرق بين السلوك المتوقع والسلوك الضعيف باستخدام بيئة إثبات مفهوم خاضعة للتحكم.
| السلوك المتوقع | السلوك الضعيف |
|---|---|
| يعرض أندرويد تحذير ملكية التحديث. | يعرض أندرويد مربع حوار تحديث عام فقط. |
![]() | ![]() |
تم إدراج CVE-2026-0023 في نشرة أمان أندرويد لشهر مارس 2026 ضمن تفاصيل ثغرات مستوى التصحيح الأمني 2026-03-01.
تتعامل مستويات التصحيح الأمني لأندرويد 2026-03-01 أو الأحدث مع جميع المشكلات المرتبطة بمستوى التصحيح الأمني 2026-03-01.
تتعامل مستويات التصحيح الأمني لأندرويد 2026-03-05 أو الأحدث مع جميع المشكلات المرتبطة بمستوى التصحيح الأمني 2026-03-05 وجميع مستويات التصحيح السابقة.
يرتبط السلوك الضعيف بمعالجة العلم الداخلي INSTALL_FROM_MANAGED_USER_OR_PROFILE.
يهدف هذا العلم إلى تمثيل سلوك التثبيت المرتبط بمستخدم مُدار أو ملف تعريف مُدار.
يقوم تصحيح AOSP الرسمي بمسح هذا العلم بشكل صريح قبل أن يتحقق أندرويد مما إذا كان التثبيت ينتمي إلى مستخدم مُدار بواسطة مؤسسة.
يضمن المنطق المُصلح أن النظام فقط يمكنه تعيين هذا العلم بناءً على نتيجة DevicePolicyManagerInternal#isUserOrganizationManaged(userId).
منطق التصحيح المبسط:
final var dpmi = LocalServices.getService(DevicePolicyManagerInternal.class);
+ // Only the system should be able to set this flag - so ensure it is unset when not needed.
+ params.installFlags &= ~PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;
if (dpmi != null && dpmi.isUserOrganizationManaged(userId)) {
params.installFlags |= PackageManager.INSTALL_FROM_MANAGED_USER_OR_PROFILE;
}
قبل التصحيح، لم يتم مسح العلم بشكل صريح قبل هذا الفحص للملفات الشخصية المُدارة.
بعد التصحيح، يقوم أندرويد أولاً بإزالة العلم ويعيد تعيينه فقط إذا قرر النظام أن المستخدم هو بالفعل مُدار بواسطة مؤسسة.
يمنع هذا المثبت العادي من التأثير على حالة جلسة التثبيت الداخلية هذه.
يحتوي هذا المستودع على ثلاثة تطبيقات أندرويد:
CVE-2026-0023-Update-Ownership-PoC
├── Safe Mart
├── Unsafe Mart
└── Ownership Inspector
Safe Mart هو تطبيق مثبت مرجعي.
يقوم بتثبيت التطبيق الهدف ويطلب ملكية التحديث أثناء التثبيت الأولي.
الغرض منه هو محاكاة متجر تطبيقات شرعي يصبح المالك المسجل لتحديث التطبيق الهدف.
Unsafe Mart هو تطبيق مثبت ثانٍ يستخدم لإعادة إنتاج CVE-2026-0023.
يدعم مسارين للتثبيت:
يؤدي المسار العادي إلى تشغيل تحذير ملكية التحديث المتوقع من أندرويد.
مسار CVE يخفي تحذير الملكية ويجعل أندرويد يعرض مربع حوار تأكيد تحديث عام بدلاً من ذلك.
Ownership Inspector هو التطبيق الهدف المستخدم في العرض التوضيحي.
يعلن التطبيق عن دعمه لملكية التحديث ويعرض بيانات وصفية متعلقة بالمثبت يتم الإبلاغ عنها بواسطة PackageManager لنظام أندرويد.
الغرض منه هو تسهيل ملاحظة كيفية تثبيت أو تحديث التطبيق الهدف خلال كل مرحلة من مراحل إثبات المفهوم.
| قبل CVE-2026-0023 | بعد CVE-2026-0023 |
![]() | ![]() |
يوضح إثبات المفهوم مسارين مختلفين للتحديث:
flowchart LR
A["Safe Mart<br/>Reference installer"] -->|"Installs target app<br/>+ requests update ownership"| B["Ownership Inspector<br/>Target app"]
C["Unsafe Mart<br/>Alternative installer"] --> D{"Update path"}
D -->|"Normal update path"| E["Android displays<br/>Update Ownership warning"]
D -->|"CVE-2026-0023 path"| F["Android displays only<br/>generic update dialog"]
E --> G["User is warned:<br/>Safe Mart is the update owner"]
F --> H["Ownership warning<br/>is suppressed"]
قم بتثبيت كلا تطبيقي المثبت على جهاز الاختبار.
اسمح لكلا التطبيقين بتثبيت التطبيقات غير المعروفة عندما يطلب أندرويد هذا الإذن.
افتح Safe Mart وحدد ملف APK لـ Ownership Inspector.
يقوم Safe Mart بتثبيت التطبيق الهدف ويطلب ملكية التحديث أثناء جلسة التثبيت الأولية.
في هذه المرحلة، يعمل Safe Mart كمثبت مرجعي ويصبح مصدر التحديث المتوقع للتطبيق الهدف.
افتح Ownership Inspector.
يعرض التطبيق بيانات وصفية متعلقة بالمثبت يتم الإبلاغ عنها بواسطة PackageManager لنظام أندرويد.
تساعد هذه الخطوة في تأكيد حالة التثبيت الأولية قبل محاولة التحديثات من Unsafe Mart.
افتح Unsafe Mart وحدد ملف APK لـ Ownership Inspector.
اختر مسار التحديث العادي.
نظرًا لأن Ownership Inspector تم تثبيته أصلاً عبر Safe Mart مع تمكين ملكية التحديث، فإن أندرويد يعرض تحذير ملكية التحديث.
هذا هو السلوك المتوقع لنظام أندرويد.
يخبر التحذير المستخدم بأن التطبيق يتلقى التحديثات عادةً من Safe Mart، بينما تأتي محاولة التحديث الحالية من Unsafe Mart.
عد إلى Unsafe Mart وحدد ملف APK لـ Ownership Inspector مرة أخرى.
اختر مسار إعادة إنتاج CVE-2026-0023.
في هذا المسار، لم يعد أندرويد يعرض تحذير ملكية التحديث.
بدلاً من ذلك، يعرض النظام مربع حوار تأكيد تحديث عام فقط.
هذا هو السلوك الضعيف الذي يوضحه إثبات المفهوم.
الفرق المهم ليس فقط التغيير البصري في مربع الحوار.
تتم إزالة الإشارة الأمنية حول مالك التحديث المسجل من تدفق التحديث.
بعد اكتمال التحديث، افتح Ownership Inspector مرة أخرى.
يمكن استخدام التطبيق لملاحظة البيانات الوصفية المتعلقة بالمثبت بعد اكتمال مسار إعادة إنتاج CVE-2026-0023.
يوضح إثبات المفهوم هذا تجاوز نموذج الثقة لملكية التحديث.
بشكل أكثر تحديدًا، يوضح ما يلي:
لا يحاول إثبات المفهوم توفير وصول جذر، أو تنفيذ تعليمات برمجية عشوائية، أو استمرارية، أو تمويه، أو سلوك يشبه البرامج الضارة.
تم إعادة إنتاج الثغرة على Android 15.
لا يتطلب إثبات المفهوم ما يلي:
يتم تنفيذ العرض التوضيحي بأكمله من خلال تطبيقات أندرويد عادية تعمل في صندوق الرمل القياسي لتطبيقات أندرويد.
يمكن ملاحظة معلومات أمان الجهاز المختبر في سجلات التطبيق.
تتضمن القيم المثال التي يجمعها إثبات المفهوم ما يلي:
Build.VERSION.SECURITY_PATCH
Build.VERSION.SDK_INT
Build.VERSION.RELEASE
Build.VERSION.INCREMENTAL
Build.FINGERPRINT
لبناء وتشغيل المشروع، تحتاج إلى:
لا يلزم أي تعديل خاص على الجهاز.
افتح كل مشروع تطبيق في Android Studio وقم ببناء APKs التصحيح:
ثم قم بتثبيت Safe Mart و Unsafe Mart على جهاز الاختبار.
يجب تثبيت Ownership Inspector عبر Safe Mart أثناء تدفق إعادة الإنتاج.
يتفاعل إثبات المفهوم مع واجهات برمجة التطبيقات PackageInstaller لنظام أندرويد ويغير معلمات جلسة التثبيت لإعادة إنتاج السلوك الضعيف.
أثناء مسار إعادة إنتاج CVE، يستخدم إثبات المفهوم علم النظام المتعلق بسلوك تثبيت المستخدم المُدار أو الملف الشخصي:
INSTALL_FROM_MANAGED_USER_OR_PROFILE
الثغرة ليست ناتجة عن الوصول إلى واجهات برمجة التطبيقات المخفية بحد ذاتها.
يتم استخدام الوصول إلى واجهات برمجة التطبيقات المخفية فقط كتفصيل تنفيذي للوصول إلى واجهات الإطار المطلوبة من سياق تطبيق عادي.
الحد الأمني المهم هو أن علم التثبيت هذا يجب أن يكون موثوقًا به فقط عندما يتم تعيينه بواسطة النظام بعد التحقق من حالة المستخدم المُدار أو الملف الشخصي المُدار.
يستخدم هذا المشروع مكتبة RestrictionBypass من ChickenHook للوصول إلى واجهات إطار أندرويد غير SDK المطلوبة لإثبات المفهوم.
آلية الوصول إلى واجهات برمجة التطبيقات المخفية لا تتعلق بالسبب الجذري لـ CVE-2026-0023 وتستخدم فقط للتفاعل مع واجهات برمجة التطبيقات PackageInstaller الضرورية.
RestrictionBypass: https://github.com/ChickenHook/RestrictionBypass
الشكر للمؤلفين الأصليين على عملهم.
صنفت جوجل CVE-2026-0023 على أنها ثغرة تصعيد امتيازات عالية الخطورة.
لا توفر المشكلة وصولاً جذريًا أو تنفيذ تعليمات برمجية عشوائية.
ومع ذلك، فإنها تسمح لمثبت غير مميز بتنفيذ عملية يجب أن تكون محمية عادةً بواسطة نموذج أمان تثبيت الحزم في أندرويد.
من المرجح أن يكون التأثير الأكثر صلة في سيناريوهات النشر للمؤسسات والأجهزة المُدارة.
قد تعتمد المؤسسات على ملكية التحديث لضمان تحديث التطبيقات من خلال متجر تطبيقات معتمد أو مثبت مؤسسة.
بإخفاء تحذير الملكية، يضعف CVE-2026-0023 إشارة ثقة يوفرها أندرويد عادةً قبل السماح بتحديث من مصدر مختلف.
بالنسبة لأجهزة المستهلكين العادية، يعتمد التأثير العملي بشكل كبير على سلوك تثبيت المستخدم، ومستوى تصحيح الجهاز، وما إذا كان التطبيق الهدف يعتمد على دلالات ملكية التحديث.
يهدف هذا المستودع إلى عرض الثغرة في بيئة بحثية خاضعة للتحكم.
لا يحاول:
يركز إثبات المفهوم بشكل خاص على سلوك تجاوز تحذير ملكية التحديث المرتبط بـ CVE-2026-0023.
نشرة أمان أندرويد - مارس 2026 https://source.android.com/docs/security/bulletin/2026/2026-03-01
سجل CVE-2026-0023 https://www.cve.org/CVERecord?id=CVE-2026-0023
NVD - CVE-2026-0023 https://nvd.nist.gov/vuln/detail/CVE-2026-0023
تصحيح AOSP - إلغاء تعيين العلم INSTALL_FROM_MANAGED_USER_OR_PROFILE بشكل صريح
https://android.googlesource.com/platform/frameworks/base/+/09055276288a68cf35b0f84ba32e28822f74ecf9
RestrictionBypass من ChickenHook https://github.com/ChickenHook/RestrictionBypass
هذا المستودع مقدم لأغراض البحث الأمني والتعليم وتحليل الثغرات.
الكود مخصص فقط لإعادة إنتاج ودراسة CVE-2026-0023 في بيئات خاضعة للتحكم وعلى الأجهزة التي يُصرح فيها بالاختبار.
لا يشجع المؤلف أو يؤيد الاختبار غير المصرح به ضد الأجهزة أو التطبيقات أو المستخدمين أو المؤسسات أو الأنظمة دون إذن.
المستخدمون مسؤولون عن الامتثال لجميع القوانين والسياسات والمتطلبات التنظيمية المطبقة عند اختبار أو تعديل أجهزة أندرويد.
استخدم هذا المستودع بمسؤولية.
| الحقل | القيمة |
|---|
| CVE | CVE-2026-0023 |
| المكوّن | Framework / PackageInstaller |
| الملف المتأثر | PackageInstallerService.java |
| الطريقة المتأثرة | createSessionInternal |
| نوع الثغرة | تصعيد الامتيازات |
| الخطورة | عالية |
| CVSS v3.1 | 7.8 |
| متجه CVSS | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| متجه الهجوم | محلي |
| تعقيد الهجوم | منخفض |
| الامتيازات المطلوبة | منخفضة |
| تفاعل المستخدم | لا شيء |
| النطاق | لم يتغير |
| التأثير | تصعيد الامتيازات عبر سلوك ملكية تحديث غير مصرح به |
| نشرة أمان أندرويد | مارس 2026 |
| مرجع خطأ أندرويد | A-459461121 |
| إصدارات AOSP المتأثرة المدرجة من قبل جوجل | Android 14, 15, 16, 16-qpr2 |
| الحدث | القيمة |
|---|
| نشرة أمان أندرويد | مارس 2026 |
| تاريخ نشر النشرة | 2 مارس 2026 |
| قسم مستوى التصحيح الأمني | 2026-03-01 |
| مستوى التصحيح الكامل للنشرة | 2026-03-05 أو أحدث |
| مرجع خطأ أندرويد | A-459461121 |
| تصحيح AOSP | 09055276288a68cf35b0f84ba32e28822f74ecf9 |
| عنوان التصحيح | Explicitly unset INSTALL_FROM_MANAGED_USER_OR_PROFILE flag |