HIGH
net/usb kaweth TxQueue Race
CVE-2026-43180
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI2.5LOW
01Description
In the Linux kernel, the following vulnerability has been resolved: net: usb: kaweth: remove TX queue manipulation in kaweth_set_rx_mode kaweth_set_rx_mode(), the ndo_set_rx_mode callback, calls netif_stop_queue() and netif_wake_queue(). These are TX queue flow control functions unrelated to RX multicast configuration. The premature netif_wake_queue() can re-enable TX while tx_urb is still in-flight, leading to a double usb_submit_urb() on the same URB: kaweth_start_xmit() { netif_stop_queue(); usb_submit_urb(kaweth->tx_urb); } kaweth_set_rx_mode() { netif_stop_queue(); netif_wake_queue(); // wakes TX queue before URB is done } kaweth_start_xmit() { netif_stop_queue(); usb_submit_urb(kaweth->tx_urb); // URB submitted while active } This triggers the WARN in usb_submit_urb(): "URB submitted while active" This is a similar class of bug fixed in rtl8150 by - commit 958baf5eaee3 ("net: usb: Remove disruptive netif_wake_queue in rtl8150_set_multicast"). Also kaweth_set_rx_mode() is already functionally broken, the real set_rx_mode action is performed by kaweth_async_set_rx_mode(), which in turn is not a no-op only at ndo_open() time.
02KernelScan AI Analysis
Risk summary
Systems using kaweth USB-to-Ethernet adapters are vulnerable to a kernel warning and transient packet loss. The race condition occurs when RX mode configuration interferes with TX queue management, causing double URB submission attempts that trigger kernel warnings and dropped packets.
Vulnerability analysis
The root cause is improper TX queue flow control in kaweth_set_rx_mode(), which calls netif_stop_queue() and netif_wake_queue() despite being an RX multicast configuration callback. This creates a race where netif_wake_queue() can re-enable transmission while a previous TX URB is still in-flight, leading to kaweth_start_xmit() attempting to submit the same URB twice. The USB core detects the active URB and emits a WARN. The fix removes the erroneous TX queue manipulation calls from the RX mode setting function, eliminating the race condition. The attack surface is local; an attacker must be able to send packets through or change the RX mode of the kaweth interface.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 5.10 | 5.10.252 | 443a830b1dc4 |
| 5.15 | 5.15.202 | 586318c27304 |
| 6.1 | 6.1.165 | a2cd4b4db315 |
| 6.12 | 6.12.75 | 9c79b839a639 |
| 6.18 | 6.18.16 | fc393af769af |
| 6.19 | 6.19.6 | 8367c0e90126 |
| 6.6 | 6.6.128 | ef9b10a02050 |
| mainline | 7.0 | 64868f5ecade |