أظهر نموذج الذكاء الاصطناعي Codex من OpenAI قدرة ملحوظة على تصعيد الامتيازات للوصول إلى صلاحيات الجذر (root) على تلفزيون Samsung ذكي حقيقي، وذلك عبر استغلال واجهات برامج تشغيل (driver interfaces) قابلة للكتابة عالميًا. هذا الاكتشاف يثير تساؤلات جدية حول معايير الأمان المتبعة من قبل مصنعي الأجهزة الإلكترونية الاستهلاكية.
تمت هذه التجربة، التي نشرها باحثون من CALIF في 14 أبريل 2026، انطلاقاً من نقطة وصول آمنة سابقًا داخل متصفح التلفزيون. بدأ الباحثون بتنفيذ تعليمات برمجية ضمن تطبيق المتصفح، والذي كان يعمل تحت سياق مستخدم محدود الصلاحيات (uid=5001).
من هذا الموقع، منح فريق البحث نموذج Codex وصولاً مباشراً إلى الجهاز الحي، بالإضافة إلى شجرة الكود المصدر لنظام التشغيل KantS2، وهو اسم المنصة الداخلية لسامسونج لإدارة برمجيات التلفزيونات الذكية. كان السؤال المطروح ببساطة هو: هل يمكن للذكاء الاصطناعي، عند منحه وضعية ما بعد الاستغلال الواقعية، أن يرتقي بالصلاحيات وصولاً إلى الجذر دون توجيه محدد نحو ثغرة معينة؟
لاحظ محللو CALIF أن Codex لم يتم توجيهه إلى برنامج تشغيل معين، ولم يُطلب منه فحص الذاكرة الفيزيائية، ولم تُمنح له أي معلومات حول صلاحيات نواة النظام. كان على الذكاء الاصطناعي استكشاف سطح الهجوم المتاح بنفسه، وقراءة الكود المصدر لبرامج التشغيل الخاصة بسامسونج، والتحقق من كل اكتشافاته على الجهاز الحي، وهو سلوك يشابه إلى حد كبير عمل خبير اختراق بشري في مهمة فعلية.
يعمل التلفزيون بنواة لينكس (Linux kernel 4.1.10) ضمن منصة Tizen من سامسونج، والتي تتضمن ميزة “منع التنفيذ غير المصرح به” (Unauthorized Execution Prevention – UEP)، والتي توقف تشغيل الملفات التنفيذية غير الموقعة من القرص. كانت بيئة البحث تتضمن بالفعل غلاف memfd، وهو أداة تحميل للبرامج في واصفات ملفات مجهولة في الذاكرة، وتشغيلها من الذاكرة بدلاً من مسار الملف، مما يتجاوز UEP تمامًا.
كيف حول Codex الوصول إلى برنامج التشغيل إلى صلاحيات الجذر
تكمن الثغرة الأساسية في الملف `/dev/ntksys`، وهو برنامج تشغيل في نواة سامسونج يسمح لبرامج مساحة المستخدم بتسجيل عنوان في الذاكرة الفيزيائية وحجمها، ثم ربط تلك الذاكرة مباشرة بعملياتها الخاصة عبر `mmap`. يطلق باحثو الأمن على هذه الميزة اسم “primitive” للوصول إلى الذاكرة الفيزيائية، حيث تمنح التعليمات البرمجية غير المميزة وصولاً للقراءة والكتابة المباشر لذاكرة الوصول العشوائي دون الحاجة إلى خدعة لتنفيذ تعليمات برمجية في النواة.
السبب الجذري يكمن في قاعدة udev الشائعة التي تمنح أذونات للكتابة عالميًا (KERNEL==”ntksys”, MODE=”0666″)، بالإضافة إلى برنامج تشغيل يتحقق فقط من فهرس جدول البيانات ويتجاهل ما إذا كان النطاق المطلوب يتداخل مع ذاكرة تابعة للنواة أو ذاكرة ذات امتيازات خاصة. يمكن ملاحظة ذلك في ملف `ker_sys.c` حوالي السطر 1158، حيث يتم تخزين العنوان المقدم من المهاجم في فتحة ومن ثم إعادة ربطه حرفيًا بواسطة `vk_remap_pfn_range`.
قام Codex ببناء الاستغلال خطوة بخطوة. أولاً، قام بالاستعلام عن `/dev/ntkhdma`، والذي أرجع عنوان ذاكرة التخزين المؤقت DMA الفيزيائي (`0x84840000`) إلى متصل غير مميز، مما وفر لـ Codex صفحة معروفة وجيدة لاختبارها. بعد ذلك، قام بربط تلك الصفحة عبر ntksys وتأكد من إمكانية القراءة والكتابة إليها من داخل نافذة المتصفح. ومع إثبات قدرة الوصول إلى الذاكرة، قام Codex بفحص نوافذ ذاكرة الوصول العشوائي من `/proc/cmdline`، وحدد بنية `cred` الخاصة بعملية المتصفح عن طريق مطابقة قيم uid و gid المخزنة، ثم قام بمسح هذه الحقول.
أكد الطرف النهائي للتصعيد الكامل للصلاحيات: `uid=0(root) gid=0(root)`. يجب على سامسونج والموردين الذين يشحنون مكدسات برامج تشغيل مماثلة تقييد أذونات عقد جهاز ntk* للعمليات ذات الامتيازات فقط، وإزالة قواعد udev القابلة للكتابة عالميًا من أي واجهة إدارة ذاكرة، وإضافة التحقق من النطاق الفيزيائي داخل برنامج تشغيل ntksys قبل السماح بأي استدعاء `mmap`.
يجب تدقيق مكونات النواة الخارجية المضمنة في البرامج الثابتة للأجهزة الاستهلاكية وفقًا لمبدأ أقل الامتيازات قبل شحنها. يمكن العثور على الشرح الكامل وشيفرة الإثبات (proof-of-concept) في مستودع CALIF على GitHub تحت اسم MADBugs/samsung-tv.

