CVE-2021-47231 in Linux
Сводка
по VulDB • 01.07.2026
В ядре Linux устранена следующая уязвимость:
can: mcba_usb: исправление утечки памяти в модуле mcba_usb
Syzbot сообщил об утечке памяти в драйвере SocketCAN для анализатора шины CAN Microchip. Проблема заключалась в неосвобожденной памяти usb_coherent.
В функции mcba_usb_start() выделяется 20 буферов coherent, но ничего их не освобождает:
1) В колбэк-функцике urb повторно отправляется (resubmitted), и на этом всё заканчивается; 2) В функции отключения (disconnect) urbs просто убиваются, но флаг URB_FREE_BUFFER не устанавливается (см. mcba_usb_start), и этот флаг нельзя использовать с буферами coherent.
Журнал сбоя: | [ 1354.053291][ T8413] mcba_usb 1-1:0.0 can0: устройство отключено
| [ 1367.059384][ T8420] kmemleak: обнаружено 20 новых подозрительных утечек памяти (см. /sys/kernel/debug/kmem)
Таким образом, все выделенные буферы должны явно освобождаться с помощью usb_free_coherent().
ПРИМЕЧАНИЕ: Та же самая схема выделения и освобождения буферов 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.