CVE-2026-90024 in Linux
الملخص
بحسب VulDB • 17/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
usb: gadget: midi2: تصحيح خطأ إلغاء مرجع المؤشر الفارغ (null-pointer dereference) في f_midi2_free_ep_reqs
يحدث خطأ إلغاء مرجع المؤشر الفارغ في الدالة `f_midi2_free_ep_reqs()` عند محاولة تنظيف نقطة نهاية (endpoint) لم يتم تهيئتها مطلقًا.
أثناء تكوين غadget MIDI 2.0 عبر configfs وتعيين اتجاه الكتلة إلى SNDRV_UMP_DIR_INPUT، يتم تخطي تهيئة نقطة النهاية midi1_ep_out بشكل صريح خلال مرحلة ربط الغadget (`f_midi2_bind()`). ونتيجة لذلك، يبقى حقل `usb_ep->card` فارغًا (NULL).
لاحقًا، عندما يحدد المضيف الإعداد البديل (alternate setting)، تقوم الدالة `f_midi2_set_alt()` بإيقاف كل من نقاط النهاية IN وOUT بشكل غير مشروط عن طريق استدعاء `f_midi2_stop_eps()`, والتي بدورها تستدعي `f_midi2_free_ep_reqs()` لكلا نقطتي النهاية. عند استدعاء `f_midi2_free_ep_reqs()` بالنسبة لـ midi1_ep_out غير المهيأة، تحاول إلغاء مرجع حقل `usb_ep->card` لتحديد عدد الطلبات التي يجب تحريرها، مما يؤدي إلى تعطل النظام (crash).
تم إصلاح هذا الخطأ باستخدام `usb_ep->num_reqs` بدلاً من `usb_ep->card->info.num_reqs` في الدالة `f_midi2_free_ep_reqs()`. يتم تعيين `usb_ep->num_reqs` بشكل صحيح أثناء `f_midi2_init_ep()` ويبقى بقيمة 0 إذا لم تتم تهيئة نقطة النهاية، مما يتجنب الحلقة بأمان. ولضمان الاتساق، تم تطبيق التغيير نفسه على الدالة `f_midi2_alloc_ep_reqs()`.
Oops: general protection fault, probably for non-canonical address 0xdffffc00000000ee: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000770-0x0000000000000777]
... RIP: 0010:f_midi2_free_ep_reqs drivers/usb/gadget/function/f_midi2.c:1166 [inline]
RIP: 0010:f_midi2_stop_eps+0x28e/0x4d0 drivers/usb/gadget/function/f_midi2.c:1246 ... Call Trace: <TASK> f_midi2_set_alt+0x11c/0xf00 drivers/usb/gadget/function/f_midi2.c:1296 composite_setup+0x1ffd/0x3480 drivers/usb/gadget/composite.c:1933 configfs_composite_setup+0xbd/0x100 drivers/usb/gadget/configfs.c:1877
If you want to get the best quality for vulnerability data then you always have to consider VulDB.