Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-39866 — إثبات المفهوم لـ CVE-2025-39866 (UAF and race condition) | Kitploit
أدوات/GitHubGitHub/bytereaper77/cve-2025-39866
تحليل الثغرات الأمنيةالاستغلالالتعلم والتعليمتطوير الحمولاتاستغلال الملفات الثنائية
GitHubbytereaper77/cve-2025-39866

CVE-2025-39866

إثبات المفهوم لـ CVE-2025-39866 (UAF and race condition)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-39866 - استخدام بعد التحرير

المؤلف: Byte Reaper

الوصف

يحاول هذا الإثبات استغلال ثغرة CVE-2025-39866، وهي خلل في أنظمة لينكس < 6.12.16 نتيجة لغياب قفل الدوران (spinlock) للخيوط، مما يسبب حالة سباق. يحاول الخيط الأول استخدام هيكل wb بينما يحرر الخيط الثاني هذا الهيكل، مما يؤدي إلى تعامل الخيط الأول مع مؤشر محرر، مما يسبب ذعر kernel للنظام. يمكننا تقسيم فكرة استغلال الثغرة إلى المراحل التالية:

root@kitploit:~
step 1 : Create thread 1 "main pid" 
	 - get root dentry 
	- create file txt writeback target 
	- create strcut inode 
	 - Create object wb 
	 - save pointer wb in wb_old
Step 2: 
- Create Thread 2 (kthread) that schedules a work item.
- The work item runs “inode_switch_wbs_work_fn” which updates “inode->i_wb” and schedules the critical free via “wb_put_many”.
step 3 :
	- thread 2 : free wb_olb 
	- thread 1 -> pointer - free object wb (free old)
	-> access free address -> crash kernel (segfault)

المتطلبات:

root@kitploit:~
Linux x86_64
kernel linux  < 6.12.16

البناء:

root@kitploit:~
	1 - He created a Makefile and included these commands to compile and build the kernel module:
	obj-m += exploit.o

	KDIR := /usr/src/linux-headers-6.12.38+kali-amd64
	PWD := $(shell pwd)

	all:
	        make -C $(KDIR) M=$(PWD) modules

	clean:
	        make -C $(KDIR) M=$(PWD) clean

التشغيل:

root@kitploit:~
	# make clean 
	# make 
	1 -  You will find a file named "exploit.ko," which is a kernel module. To load it into the kernel space, use the insmod tool :
	# insmod exploit.ko 

المراجع:

  • NVD : https://nvd.nist.gov/vuln/detail/CVE-2025-39866
  • CVE : https://www.cve.org/CVERecord?id=CVE-2025-39866

ملاحظة:

  • قريبًا سأطور استغلالًا يستخدم طرقًا أخرى للتلاعب بهيكل wb، مثل تقليل عداد المرجع أو حذف ذاكرة التخزين المؤقت لـ wb من قائمة التخزين المؤقت. سأضيف أيضًا محاولات لتنفيذ رش الذاكرة (Memory Spraying) ومحاولات كشف التسريبات أو رفع الامتيازات في النظام. هذا مجرد إثبات مفهوم للثغرة.

حل المشكلة

المشكلة الرئيسية في الخلل هي غياب "قفل الدوران" (spinlock) لمزامنة الخيوط. الحل هنا هو:

أولاً (تخصيص Slab/Slub)، تخصيص slab/slub محدد لكل خيط، ولا يمكن لأي خيط التحكم أو التلاعب بحجم ذاكرة خيط آخر.

ثانيًا (المزامنة)، تكوين Workqueue لتجنب التداخل وحالات السباق، حيث ينهي كل خيط مهمته وينتقل إلى خيط آخر بدلاً من تبديل wb في نفس الوقت أو استخدام دالة wb_wakeup_delayed.

ثالثًا (HLE/RTM): تفعيل HLE/RTM في النواة يعتمد على بنية المعالج، ولكن إذا كان يدعم هاتين الميزتين، فلماذا لا نستخدمهما في النواة، على سبيل المثال، في توجيه تدفق البرنامج أو عند حدوث خطأ، محاولة العودة إلى استثناء آخر بدلاً من الانهيار "التراجع" عبر تعليمات مثل XBEGIN، XABORT، XEND.

الترخيص:

MIT

تنزيل الأداة