
# cve-2025-32463 - تصعيد الصلاحيات محليًا إلى الجذر عبر sudo chroot في لينكس
sudo chroot <dir name> <command>
قم بتنفيذ الأمر command داخل الدليل المحدد <dir name>.
تم تقديم هذه المشكلة في الإصدار sudo v1.9.14، حيث قام هذا الإصدار بترقية كود معالجة المطابقة عند استخدام ميزة chroot.

هذا التغيير الجديد يجعل تنفيذ الأمر chroot يغير معرف نظام الملفات الجذر قبل المطابقة. الوظائف المحددة موجودة في plugins/sudoers/pivot.c. هذا الملف (الذي تم حذفه الآن) يحتوي على الدالتين pivot_root() و unpivot_root() المُستخدمتين في منطق مطابقة chroot. استدعاء هاتين الدالتين يؤدي إلى تشغيل عملية تبديل خدمة الأسماء (NSS)، مما يتسبب في تحميل النظام لملف التكوين /etc/nsswitch.conf من بيئة غير موثوقة (نظرًا لتغير chroot إلى معرف نظام الملفات الجذر الحالي). يحتوي ملف التكوين هذا على تعليمات حول كيفية استرجاع النظام للمعلومات المتعلقة بالمستخدمين والمجموعات والمضيفين، حيث يمكن إدراج عدة مصادر والبحث فيها بالتسلسل حتى العثور على تطابق.
نظرًا لأن /etc/nsswitch.conf يحتوي على العديد من أسطر الإدخالات، فإن البحث عن المعلومات يتم وفقًا لترتيب هذه الأسطر. النقطة المهمة في الثغرة هي: عند البحث عن مصدر في ملف nsswitch.conf، يتم استخدام اسم المصدر كجزء من مسار الكائن المشترك، على سبيل المثال: يتم تحويل مصدر ldap إلى libnss_ldap.so. عندما تستخدم وظيفة NSS مصدر ldap، يتم تحميل هذه المكتبة.
بالنسبة للمهاجم، فإن استدعاء pivot_root() و unpivot_root() يؤدي إلى تشغيل عمليات NSS. لذلك يمكن للمهاجم إنشاء دليل جذر chroot في مسار يمكن التحكم فيه، يحتوي على ملف /etc/nsswitch.conf وملفات مكتبة خبيثة. يمكن توجيه خدمة الأسماء إلى وحدة NSS مخصصة، حيث يمكن تزييف مكتبة مشتركة خبيثة.
عندما يقوم المهاجم بتشغيل الأمر sudo -R <fake_root_dir> <command> لمحاولة تنفيذ الأمر في وضع chroot، فإن sudo يقوم باستدعاء نظام NSS لتحليل معلومات المستخدم/المجموعة قبل التحقق الكامل من الصلاحيات، فيقوم بقراءة ملف /etc/nsswitch.conf المزيف، الذي يوجه إلى وحدة NSS الخبيثة. في هذه المرحلة، تكون عملية sudo قد تحولت إلى الدليل الجذر المزيف ولا تزال تعمل بصلاحيات الجذر، وبالتالي يتم تحميل وتنفيذ كود المكتبة المشتركة الخبيثة للمهاجم بصلاحيات الجذر.
git clone https://github.com/Spongebob-369/cve-2025-32463.git
cd cve-2025-32463
chmod +x run.sh
./run.sh
# بعد الدخول إلى حاوية Ubuntu
./sudo-chroot.sh
id