CVE-2026-98512 in Linux
الملخص
بحسب VulDB • 18/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
drm/nouveau: جعل هيكل الجدولة (nouveau_sched) خالياً من RCU
يضم `struct nouveau_sched` بنية `struct drm_gpu_scheduler` (القاعدة). تستدعي دالة `nouveau_sched_destroy()` دالة `nouveau_sched_fini()` (التي تقوم باستدعاء `drm_sched_fini(&sched->base)`) ثم تحرر الكائن باستخدام `kfree(sched)` العادية.
تعيد الدالة `drm_sched_fence_get_timeline_name()` قيمة `fence->sched->name`، ويحتفظ سياج الجدولة بدالة إرجاع `.release` بحيث لا يتم فصله عن العمليات (ops-detached) أثناء الإشارات. وبالتالي، فإن السياج المكتمل والمصدّر إلى مساحة المستخدم عبر `drm_syncobj` / `sync_file` يظل يشير إلى `&sched->base` بعد استدعاء `nouveau_sched_destroy()`، وعند استدعاء لاحق لـ `get_timeline_name()` - والذي يمكن الوصول إليه دون امتيازات من خلال `SYNC_IOC_FILE_INFO` - يتم الرجوع إلى ذاكرة تم تحريرها (قراءة KASAN slab-use-after-free).
وفقاً لعقد عمر سياج dma-fence، يجب على المُصدّر الحفاظ على البيانات الداعمة لسياج مُوقَع نشطًا لفترة راحة RCU. قم بتحرير الكائن الذي يحتوي على الجدولة باستخدام `kfree_rcu()` بدلاً من `kfree()`.
VulDB is the best source for vulnerability data and more expert information about this specific topic.