Executive brief
A vulnerability in the Linux kernel's UCAN driver can cause the entire system to hang or become unresponsive. This occurs when the driver receives a specifically malformed message from a connected CAN (Controller Area Network) device, which is commonly used in automotive and industrial hardware. An attacker with local access or a compromised device could trigger this infinite loop to cause a complete denial of service.
Technical details
An infinite loop vulnerability exists in the Linux kernel's UCAN driver (drivers/net/can/usb/ucan.c) within the ucan_read_bulk_callback() function. The root cause is a failure to properly validate the message length field; if a device provides a message with a length of 0, the driver enters an infinite loop while attempting to parse the bulk transfer. This results in a kernel hang and denial of service. The vulnerability can be triggered by a malfunctioning or malicious USB CAN device. Patches have been released across multiple stable kernel branches to explicitly check for zero-length messages and skip them.
Affected products
- Linux Linux Kernel 4.19 to 5.10.253, 5.11 to 5.15.203, 5.16 to 6.1.167, 6.2 to 6.6.130, 6.7 to 6.12.77, 6.13 to 6.18.17, 6.19 to 6.19.7, 7.0-rc1, 7.0-rc2
Timeline
- 2026-03-25: disclosed
- 2026-03-25: patched
- 2026-03-25: advisory
References
- https://git.kernel.org/stable/c/13b646eec3ba1131180803f5aaf1fee23540ad8f
- https://git.kernel.org/stable/c/1e446fd0582ad8be9f6dafb115fc2e7245f9bea7
- https://git.kernel.org/stable/c/aa9e0a7fe5efc2f74327fd37d828e9a51d9ff588
- https://git.kernel.org/stable/c/ab6f075492d37368b4c7b0df7f7fdc2b666887fc
- https://git.kernel.org/stable/c/bd85f21a6219aeae4389d700c54f1799f4b814e0
- https://git.kernel.org/stable/c/c7bc62be6c1a60bb21301692009590b1ffda91d9
- https://git.kernel.org/stable/c/ca07d3c6eef14d34e6fdeefe55058db045be29dc