Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-40271 — CVE-2025-40271 تم تعديله بواسطة MadEploits | Kitploit
أدوات/GitHubGitHub/madexploits/cve-2025-40271
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالأوراق والأبحاثالتعلم والتعليماستغلال الملفات الثنائية
GitHubmadexploits/cve-2025-40271

CVE-2025-40271

CVE-2025-40271 تم تعديله بواسطة MadEploits

عرض المستودع
1115منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2025-40271 — UAF في شجرة rb لـ proc_readdir_de() لتصعيد الصلاحيات محليًا (LPE)

إثبات مفهوم لثغرة تصعيد صلاحيات محلية في نظام ملفات proc الخاص بنواة لينكس. الخلل هو استخدام بعد التحرير (use-after-free) في proc_readdir_de() سببه rb_erase() دون RB_CLEAR_NODE()، مما يترك روابط شجرة حمراء-سوداء قديمة يمكن استغلالها بالتنافس أثناء تعداد الدليل.

المؤلف: MadExploits

البحث الأصلي للثغرة وإثبات المفهوم بلغة C من إعداد أفيرال سريفاستافا (N-DAY RESEARCH). يتضمن هذا المستودع نسخة شل (exploit.sh) للبيئات التي لا يكون التجميع فيها عمليًا.


نظرة عامة

الحقلالتفاصيل
CVECVE-2025-40271
المكوّنfs/proc — proc_readdir_de() / remove_proc_entry()
النوعاستخدام بعد التحرير (روابط شجرة حمراء-سوداء قديمة)
الأثرتصعيد صلاحيات محلي (LPE)
البنيةx86_64
المتأثرأنوية لينكس حتى 6.18-rc5

السبب الجذري

عند إزالة إدخال دليل من proc، يتم استدعاء rb_erase() على عقدة rb الخاصة بالإدخال بدون RB_CLEAR_NODE(). يمكن أن تظل العقد المُحرَّرة قابلة للوصول عبر روابط الشجرة القديمة. إذا تنافس getdents64() مع إزالة الواجهة تحت /proc/self/net/dev_snmp6/، فقد تقرأ النواة ذاكرة مُحرَّرة — غالبًا ما تستعيدها كائنات msg_msg المتناثرة — وتعيد قيم d_ino شاذة تسرّب مؤشرات كومة النواة.


الأنوية المتأثرة والمصححة

يتحقق إثبات المفهوم من إصدار النواة قيد التشغيل ويخرج عند البنى المصححة:

الفرعالإصلاح في
5.10.x5.10.247+
6.1.x6.1.159+
6.6.x6.6.123+
6.12.x6.12.73+
6.18+6.18-rc6+
7.x+مصحَّح

محتويات المستودع

الملفالوصف
exploit.cإثبات مفهوم كامل بلغة C — إدارة netlink veth، تنافس pthread، رش msg_msg
exploit.shنسخة شل بدون تجميع — unshare، ip، بايثون 3 مدمجة لاستدعاءات النظام/التنافس

تتبع كلتا النسختين نفس مسار الاستغلال:

  1. الدخول إلى مساحة اسم مستخدم وشبكة (الحصول على CAP_NET_ADMIN في مساحة اسم الشبكة)
  2. إنشاء أزواج veth → ملء /proc/self/net/dev_snmp6/
  3. منافسة getdents64() ضد حذف veth السريع + رش الكومة
  4. كشف UAF عبر قيم d_ino الشبيهة بمؤشرات النواة
  5. محاولة التصعيد (يتطلب LPE الكامل إزاحات KASLR خاصة بالنواة)

المتطلبات

عام

  • Linux x86_64
  • تمكين مساحات أسماء المستخدمين غير المميزة:
    cat /proc/sys/kernel/unprivileged_userns_clone
    # must be 1
    
  • مستخدم غير جذر (يخرج إثبات المفهوم إذا كان المستخدم جذرًا بالفعل)

exploit.c

  • gcc مع pthreads
  • ترويسات لينكس (linux/netlink.h، إلخ.)
gcc -o exploit exploit.c -lpthread

exploit.sh

  • bash
  • python3
  • ip (iproute2)
  • unshare (util-linux مع دعم --map-root-user)

لا حاجة إلى مترجم.


الاستخدام

نسخة الشل (موصى بها للاختبار السريع)

chmod +x exploit.sh
./exploit.sh

نسخة C

gcc -o exploit exploit.c -lpthread
./exploit

المخرجات المتوقعة

نواة قابلة للاستغلال — تم تشغيل UAF (نجاح جزئي):

[+] Kernel X.Y.Z — VULNERABLE
[+] Namespace ready...
[+] Created 32 veth pairs (/proc/self/net/dev_snmp6 populated)
[+] UAF HIT! d_ino=0xffff8880........ (kernel heap pointer)
[+] Kernel heap leak: 0xffff8880........
[*] PARTIAL SUCCESS: UAF + heap leak DEMONSTRATED

نواة مصححة:

[-] Kernel X.Y.Z — PATCHED
[*] Kernel is patched. Nothing to do.

ملاحظات الاستغلال

  • تسريب الكومة: عندما يُحسم التنافس لصالح المهاجم، تحتوي d_ino على قيمة تطابق نمط مؤشر نواة x86_64 (0xffff000000000000)، عادةً من ترويسة msg_msg m_list المتداخلة مع بيانات proc_dir_entry المُحرَّرة.
  • LPE الكامل: تستلزم الكتابة فوق modprobe_path الإزاحة بين عنوان الكومة المُسرَّب وقاعدة نص النواة — وهذا خاص بكل بناء (KASLR). يوضح إثبات المفهوم UAF والتسريب؛ تحتاج السلسلة الكاملة إلى إزاحات لصورة النواة المستهدفة.
  • الموثوقية: يعتمد النجاح على توقيت المجدول. يعيد إثبات المفهوم المحاولة حتى 30 محاولة تنافس افتراضيًا.

التخفيف

  • قم بالترقية إلى نواة مصححة (انظر الجدول أعلاه).
  • إذا لم تكن مساحات أسماء المستخدمين مطلوبة، فعطّل الإنشاء غير المميز:
    sysctl -w kernel.unprivileged_userns_clone=0
    
  • طبّق التحديثات الأمنية من المورّد الخاصة بـ CVE-2025-40271.

إخلاء مسؤولية

يُقدَّم هذا المشروع لأغراض البحث الأمني المصرح به والتعليم والاختبارات الدفاعية فقط.

  • لا تشغّله إلا ضد أنظمة تملكها أو لديك إذن كتابي صريح لاختبارها.
  • قد ينتهك الاستخدام غير المصرح به ضد أنظمة طرف ثالث القوانين المعمول بها.
  • المؤلفون والمساهمون غير مسؤولين عن إساءة استخدام هذا الكود.

الاعتمادات

الدورالاسم
مؤلف المستودعMadExploits
البحث الأصلي للثغرة وإثبات المفهوم بلغة CAviral Srivastava — N-DAY RESEARCH

الترخيص

استخدمه على مسؤوليتك الخاصة. لا يُقدَّم أي ضمان.

تنزيل الأداة