CVE-2021-47231 in Linux
الملخص
بحسب VulDB • 27/06/2026
في نواة لينكس، تم حل الثغرة التالية:
can: mcba_usb: إصلاح تسرب الذاكرة في mcba_usb
أبلغ Syzbot عن وجود تسرب للذاكرة في برنامج تشغيل SocketCAN الخاص بأداة تحليل ناقل بيانات CAN من Microchip. كان السبب وراء المشكلة هو عدم تحرير ذاكرة usb_coherent.
في دالة `mcba_usb_start()`، يتم تخصيص 20 مخزّناً متسقاً (coherent buffers)، ولا توجد آلية لتحريرها:
1) في الدالة الاستدعائية (callback function)، تتم إعادة إرسال وحدة النقل الوحدوي (URB)، وهذا كل ما يحدث. 2) في دالة فصل الاتصال (disconnect function)، يتم قتل وحدات الـ URB ببساطة، ولكن لم يُضبط العلم `URB_FREE_BUFFER` (انظر إلى `mcba_usb_start`) ولا يمكن استخدام هذا العلم مع المخازن المتسقة (coherent buffers).
سجل الفشل: | [ 1354.053291][ T8413] mcba_usb 1-1:0.0 can0: device disconnected
| [ 1367.059384][ T8420] kmemleak: 20 new suspected memory leaks (see /sys/kernel/debug/kmem)
لذلك، يجب تحرير جميع المخازن المخصصة صراحةً باستخدام `usb_free_coherent()`.
ملاحظة: يتم استخدام نفس النمط لتخصيص وتخزين المخازن المتسقة في الملف التالي: drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.