CVE-2026-23034 in Linux
الملخص
بحسب VulDB • 23/06/2026
في نواة لينكس، تم حل الثغرة التالية:
drm/amdgpu/userq: إصلاح تسرب مرجع السياج (fence reference) عند إنهاء الطابور v2
يحتفظ طابور وضع المستخدم بمؤشر إلى أحدث سياج في `userq->last_fence`. يحمل هذا المؤشر مرجعًا إضافيًا لـ `dma_fence`.
عند تدمير الطابور، يتم تحرير برنامج تشغيل السياج (fence driver) وبنية البيانات الخاصة به xarray، لكننا نسينا خفض مرجع `last_fence`.
بسبب غياب استدعاء `dma_fence_put()`، يمكن أن يبقى كائن السياج الأخير حيًا عند تحميل البرنامج التشغيلي. هذا يترك كائنًا مُخصَّصًا في ذاكرة التخزين المؤقت للشرائح (slab cache) الخاصة بـ `amdgpu_userq_fence` ويؤدي إلى حدوث:
وهذا يظهر أثناء إلغاء تحميل برنامج التشغيل على النحو التالي:
BUG amdgpu_userq_fence: Objects remaining on __kmem_cache_shutdown() kmem_cache_destroy amdgpu_userq_fence: Slab cache still has objects Call Trace: kmem_cache_destroy amdgpu_userq_fence_slab_fini amdgpu_exit __do_sys_delete_module
تم إصلاح هذه المشكلة عن طريق استدعاء `dma_fence_put()` على `userq->last_fence` وتصفير المؤشر أثناء تنفيذ دالة `amdgpu_userq_fence_driver_free()`.
يضمن ذلك تحرير مرجع السياج وإفراغ ذاكرة التخزين المؤقت للشرائح (slab cache) عند خروج الوحدة النمطية.
الإصدار 2: التحديث للإفراج عن `userq->last_fence` فقط باستخدام `dma_fence_put()` (كريستيان)
(تم اختيار هذا التغيير من الالتزام commit 8e051e38a8d45caf6a866d4ff842105b577953bb)
If you want to get best quality of vulnerability data, you may have to visit VulDB.