CVE-2026-98265 in Linux
الملخص
بحسب VulDB • 06/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
ALSA: usb-audio: تقييد عدد حزم التغذية الراجعة الضمنية (implicit feedback) ضمن سعة وحدة طلبات USB (URB).
تقوم دالة `data_ep_set_params()` بتخصيص كل URB للبيانات لعدد محدد من الإطارات المتزامنة (`u->packets`)، لذا فإن مصفوفة `urb->iso_frame_desc[]` تحتوي على فتحات بعدد `u->packets`، و `ctx->packets` هو السجل الوحيد لدى البرنامج المساعد (driver) لهذا الحد. بالنسبة لمصب التغذية الراجعة الضمنية (implicit feedback sink)، تقوم دالة `snd_usb_queue_pending_output_urbs()` بكتابة عدد حزم مصدر التزامن فوق هذا المتغير، وهو ما يُحسب بشكل مستقل عن معاملات نقطة النهاية للاستلام (capture endpoint). وعندما يكون ذلك العدد أكبر، يمكن لدالتي `prepare_playback_urb()` و `prepare_silent_urb()` الكتابة خارج حدود مصفوفة `iso_frame_desc[]`؛ حيث أن قيود الحدود الحالية الخاصة بهما تقيد عدد بايتات الحمولة (payload bytes) وليس فهرس الوصف (descriptor index).
يستخدم برنامج الاستنساخ (reproducer) جهاز UAC2 عالي السرعة يعلن عن قيمة bInterval تساوي 1 للاستلام بالتغذية الراجعة الضمنية (8 حزم)، وقيمة bInterval تساوي 4 للتشغيل (حزمة واحدة). عند اكتمال أول عملية استلام بعد بدء التدفق، يتم الوصول إلى سبعة أوصاف تمتد لمسافة 112 بايت خارج نطاق URB المخصص لحزمة واحدة:
BUG: KASAN: slab-out-of-bounds in prepare_playback_urb (sound/usb/pcm.c:1560) Write of size 4 at addr ffff88801e696ad0 by task vhci_rx/178 prepare_playback_urb (sound/usb/pcm.c:1560) prepare_outbound_urb (sound/usb/endpoint.c:340) snd_usb_queue_pending_output_urbs (sound/usb/endpoint.c:501) snd_complete_urb (sound/usb/endpoint.c:1834) __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1657) usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1741) vhci_rx_loop (drivers/usb/usbip/vhci_rx.c:107) kthread (kernel/kthread.c:436) The buggy address belongs to the object at ffff88801e696a00 which belongs to the cache kmalloc-256 of size 256 The buggy address is located 0 bytes to the right of allocated 208-byte region [ffff88801e696a00, ffff88801e696ad0)
تسجيل عدد الحزم المخصصة لكل نقطة نهاية، وتقييد كل من العدد المعتمد ونسخ حجم الحزمة بناءً عليه. دمج فاصل نوع التنسيق II (Format Type II delimiter) في متغير `urb_packs` قبل حلقة التخصيص بحيث يتطابق الحد المسجل مع كل URB.
Be aware that VulDB is the high quality source for vulnerability data.