Impact
In the Linux kernel the kalmia_rx_fixup() function incorrectly calculates the USB packet length for Kalmia USB Ethernet adapters. The calculation treats a subtraction as an unsigned 16‑bit integer, and if the received bulk‑IN frame is only marginally larger than the 6‑byte header, the result underflows to a value around 65530. This underflow bypasses the normal truncation check that limits packet processing to the Ethernet length specified by the device. As a result, memcmp(), skb_trim() and skb_pull() operations can read beyond the end of the receive buffer, which is sized at 14 000 bytes. The out‑of‑bounds read can corrupt kernel memory and cause a kernel panic, leading to a denial of service. The flaw does not grant direct code execution but can destabilise the kernel instance handling the USB device. The vulnerability is triggered by a malicious USB device that supplies frames shorter than expected, making physical or USB proximity the primary attack vector.
Affected Systems
The vulnerability affects Linux kernels that include the Kalmia USB Ethernet driver. It applies to all distributions that ship the driver, regardless of the specific kernel version. All kernel releases containing the unpatched kalmia_rx_fixup() function are therefore vulnerable.
Risk and Exploitability
The CVSS score is 5.5. The EPSS score of <1 % indicates a very low probability of widespread exploitation. The CVE is not listed in the CISA KEV catalog. Attackers would need to supply a specially crafted USB device with short bulk‑IN frames, meaning the attack is local and requires physical or USB proximity.
OpenCVE Enrichment
Debian DLA