Executive brief
A vulnerability exists in the Linux kernel's driver for SR9800 USB-to-Ethernet adapters. The software fails to properly check for errors when initializing the device's communication endpoints. If an error occurs during this process, it could lead to a system crash or instability, potentially allowing a local user to cause a denial-of-service.
Technical details
A vulnerability in the sr9800 USB-to-Ethernet driver (drivers/net/usb/sr9800.c) stems from missing error handling for the usbnet_get_endpoints() function within the sr9800_bind() routine. When the driver attempts to bind to a device, it fails to check if endpoint initialization was successful. If the function fails, the driver continues execution with uninitialized or invalid endpoint data, which can lead to a kernel null pointer dereference or other memory corruption issues. An attacker with local access could potentially trigger this by providing a specially crafted or malfunctioning USB device. Patches have been released across multiple stable kernel branches to ensure the return value is checked and errors are propagated correctly.
Affected products
- Linux Linux Kernel 3.14 to 4.19.311, 4.20 to 5.4.273, 5.5 to 5.10.214, 5.11 to 5.15.153, 5.16 to 6.1.83, 6.2 to 6.6.23, 6.7 to 6.7.11, 6.8 to 6.8.2
Timeline
- 2024-03-05: other: Initial patch authored
- 2024-03-27: disclosed: CVE published
References
- https://git.kernel.org/stable/c/07161b2416f740a2cb87faa5566873f401440a61
- https://git.kernel.org/stable/c/276873ae26c8d75b00747c1dadb9561d6ef20581
- https://git.kernel.org/stable/c/424eba06ed405d557077339edb19ce0ebe39e7c7
- https://git.kernel.org/stable/c/6b4a39acafaf0186ed8e97c16e0aa6fca0e52009
- https://git.kernel.org/stable/c/8a8b6a24684bc278036c3f159f7b3a31ad89546a
- https://git.kernel.org/stable/c/9c402819620a842cbfe39359a3ddfaac9adc8384
- https://git.kernel.org/stable/c/e39a3a14eafcf17f03c037290b78c8f483529028