Executive brief
A vulnerability in the Linux kernel's gs_usb driver can cause network communication to slow down or stop entirely. This occurs because the driver fails to properly clean up resources when a data transmission fails, leading to a gradual exhaustion of available communication slots. In practice, this could result in a denial-of-service for devices relying on CAN bus communication via USB.
Technical details
A resource leak exists in the gs_usb CAN driver within the gs_usb_xmit_callback() function. When a bulk URB transmission fails, the driver does not perform necessary cleanup, such as marking the echo_skb as free, freeing the driver's context, or waking the send queue. This results in a permanent reduction of available URBs for each error encountered. Over time, this leads to performance degradation and a complete denial-of-service (DoS) for the CAN interface. The fix involves implementing proper accounting and resource release in the error path of the callback function.
Affected products
- Linux Linux Kernel All versions prior to the fix in gs_usb driver
Timeline
- 2025-11-08: other: Patch authored
- 2025-12-16: advisory: CVE published
References
- https://git.kernel.org/stable/c/1a588c40a422a3663a52f1c5535e8fb6b044167d
- https://git.kernel.org/stable/c/4a82072e451eacf24fc66a445e906f5095d215db
- https://git.kernel.org/stable/c/516a0cd1c03fa266bb67dd87940a209fd4e53ce7
- https://git.kernel.org/stable/c/87974ebd6552817492daec7866ebfa2c484fa2ac
- https://git.kernel.org/stable/c/9c8eb33b7008178b6ce88aa7593d12063ce60ca3
- https://git.kernel.org/stable/c/f7a5560675bd85efaf16ab01a43053670ff2b000