CVE-2021-47231 in Linux
Tóm tắt
Bởi VulDB • 02/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
can: mcba_usb: sửa lỗi rò rỉ bộ nhớ trong mcba_usb
Syzbot báo cáo một lỗi rò rỉ bộ nhớ trong trình điều khiển SocketCAN cho Công cụ Phân tích Bus CAN Microchip. Vấn đề nằm ở việc không giải phóng `usb_coherent`.
Trong hàm `mcba_usb_start()`, 20 vùng đệm (buffers) coherent được cấp phát nhưng không có cơ chế nào để giải phóng chúng:
1) Trong hàm callback, urb được gửi lại và đó là tất cả những gì xảy ra. 2) Trong hàm disconnect, các urbs bị hủy đơn thuần, nhưng cờ `URB_FREE_BUFFER` không được đặt (xem `mcba_usb_start`) và cờ này không thể sử dụng với các vùng đệm coherent.
Nhật ký lỗi: | [ 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)
Do đó, tất cả các vùng đệm được cấp phát phải được giải phóng rõ ràng bằng cách sử dụng `usb_free_coherent()`.
LƯU Ý: Mẫu tương tự để cấp phát và giải phóng các vùng đệm coherent cũng được sử dụng trong tệp drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.