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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-98180 — إثبات مفهوم ومُعيد إنتاج KUnit مؤكَّد بـ KASAN للثغرة CVE-2026-98180، وهي ثغرة استخدام بعد التحرير (use-after-free) في drm/msm تخص كائنات الحلقة (ring) والذاكرة الافتراضية (VM) التي تحتوي على المُجدوِل، ويمكن الوصول إليها عبر SYNC_IOC_FILE_INFO من دون امتيازات. | Kitploit
أدوات/GitHubGitHub/malhyuk/cve-2026-98180
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيالأوراق والأبحاثالتعلم والتعليم
GitHubmalhyuk/cve-2026-98180

CVE-2026-98180

إثبات مفهوم ومُعيد إنتاج KUnit مؤكَّد بـ KASAN للثغرة CVE-2026-98180، وهي ثغرة استخدام بعد التحرير (use-after-free) في drm/msm تخص كائنات الحلقة (ring) والذاكرة الافتراضية (VM) التي تحتوي على المُجدوِل، ويمكن الوصول إليها عبر SYNC_IOC_FILE_INFO من دون امتيازات.

عرض المستودع
منذ 18 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-98180 — drm/msm: استخدام بعد التحرير (use-after-free) لكائنات الحلقة/VM التي تحتوي على المجدول

يحتفظ drm_sched_fence المُصدَّر إلى مساحة المستخدم بمؤشر خام إلى drm_gpu_scheduler الذي أنشأه. في drm/msm يكون هذا المجدول مضمَّنًا داخل struct msm_ringbuffer وstruct msm_gem_vm، وكلاهما كان يُحرَّر باستخدام kfree() عادي. لذلك فإن السياج (fence) المنتهي الذي تحتفظ به مساحة المستخدم يعيش أطول من مجدوله، ويؤدي استدعاء SYNC_IOC_FILE_INFO لاحقًا — وهو ioctl غير مميَّز — إلى قيام drm_sched_fence_get_timeline_name() بإلغاء الإشارة إلى ذاكرة slab محرَّرة.

BUG: KASAN: slab-use-after-free in drm_sched_fence_get_timeline_name
Read of size 8

السبب الجذري

drm_sched_fence_get_timeline_name() هي return fence->sched->name;.

تحتفظ عمليات سياج المجدول بدالة .release، لذا فإن السياج لا يكون منفصلًا عن عملياته عند إشارته. السياج المُشار إليه والمُصدَّر عبر sync_file أو drm_syncobj يظل يشير إلى المجدول المضمَّن بعد تحرير الحلقة أو VM. وفقًا لعقد عمر dma-fence يجب على المُصدِّر إبقاء البيانات الداعمة لسياج مُشار إليه حية خلال فترة سماح RCU؛ ولم يفعل drm/msm ذلك.

الإصلاح01c8d1f385f7 — drm/msm: RCU-free the scheduler-containing ring and VM objects
أُدخل بواسطة1d8a5ca436ee (drm/msm: Conversion to drm scheduler)، 92395af63a99 (drm/msm: Add VM_BIND submitqueue)
نُقل إلى الإصدارات السابقة6.18-stable، 7.2-stable (Greg Kroah-Hartman، 2026-09-22)
إمكانية الوصولغير مميَّز — SYNC_IOC_FILE_INFO على واصف ملف سياج (fence fd)
التأثيرقراءة UAF لذاكرة slab محرَّرة (تسريب معلومات / قراءة عشوائية لمؤشر اسم الكائن المحرَّر)

يستبدل الإصلاح kfree() بـ kfree_rcu() لكلا الكائنين الحاويين:

-	kfree(vm);
+	kfree_rcu(vm, rcu);
...
-	kfree(ring);
+	kfree_rcu(ring, rcu);

إعادة الإنتاج

الخطأ موجود في معالجة عمر drm/sched العامة، لذا يمكن إعادة إنتاجه دون عتاد Adreno باستخدام مجدول وهمي KUnit. هذا هو الدليل في evidence/kasan-report.txt.

cd poc && ./run-repro.sh            # applies 0001-…patch, builds KUnit + KASAN, runs
  • poc/0001-drm-sched-kunit-uaf-repro.patch — مُعيد إنتاج KUnit مستقل عن العتاد (مؤكَّد بـ KASAN)
  • poc/poc_userspace_drm_sched_uaf.c — تسلسل ioctl غير المميَّز من مساحة المستخدم على سائق متأثر
  • poc/kunitconfig، poc/run-repro.sh — أداة البناء/التشغيل
  • evidence/kasan-report.txt — تقرير KASAN لاستخدام بعد التحرير في slab

كُتب poc_userspace_drm_sched_uaf.c استنادًا إلى AMD XDNA كمثال عملي لأن ذلك الجهاز كان متاحًا؛ وينطبق الشكل نفسه على msm (MSM_SUBMITQUEUE / VM_BIND يصدِّران سياجًا منتهيًا عبر sync_file_create() + fd_install()) وعلى nouveau.

ذو صلة

أُصلحت فئة عمر dma-fence نفسها أيضًا في النواة: 3ed11c671ff7 — dma-buf/dma-fence: fix checking signaling bit for timeline and driver name v3 (من تأليف Christian König؛ أبلغ عنه واختبره مؤلف هذا المستودع).

الفضل

وُجد وأُصلح بواسطة JongHyuk Kim(MalHyuk) — [email protected]. تم التوقيع على التصحيح من قبل Rob Clark وGreg Kroah-Hartman. Patchwork: https://patchwork.freedesktop.org/patch/750234/

الترخيص

كود إعادة الإنتاج مرخَّص بموجب GPL-2.0، بما يتوافق مع مصادر النواة التي يُشتق منها.

تنزيل الأداة