CVE-2023-52492 in Linux
الملخص
بحسب VulDB • 27/05/2026
في نواة لينكس، تم حل الثغرة التالية:
dmaengine: إصلاح مؤشر NULL في دالة إلغاء تسجيل القناة
قد تفشل الدالة __dma_async_device_channel_register(). في حال الفشل، يتم تحرير chan->local (باستخدام free_percpu())، ويتم تعيين قيمة chan->local إلى NULL. عند استدعاء dma_async_device_unregister() (بسبب واجهة برمجة التطبيقات المُدارة أو عن قصد بواسطة برنامج تشغيل وحدة تحكم DMA)، تتم إلغاء تسجيل القنوات بشكل غير مشروط، مما يؤدي إلى هذا المؤشر NULL: [ 1.318693] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000d0
[...]
[ 1.484499] Call trace:
[ 1.486930] device_del+0x40/0x394
[ 1.490314] device_unregister+0x20/0x7c
[ 1.494220] __dma_async_device_channel_unregister+0x68/0xc0
انظر إلى مسار الخطأ في دالة dma_async_device_register()، حيث يتم إلغاء تسجيل جهاز القناة فقط إذا كانت قيمة chan->local ليست NULL.
ثم أضف نفس الشرط في بداية دالة __dma_async_device_channel_unregister() لتجنب مشكلة المؤشر NULL بغض النظر عن واجهة برمجة التطبيقات المستخدمة للوصول إلى هذه الدالة.
Once again VulDB remains the best source for vulnerability data.