KernelScan.io

HIGH

net/usb kaweth TxQueue Race

CVE-2026-43180

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI2.5LOW

01

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.

02

Engine v0.2.0

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.

Affecteddrivers/net/usb/kaweth.c (USB network driver)

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.

03

BranchFixed inPatch commit
5.105.10.252443a830b1dc4
5.155.15.202586318c27304
6.16.1.165a2cd4b4db315
6.126.12.759c79b839a639
6.186.18.16fc393af769af
6.196.19.68367c0e90126
6.66.6.128ef9b10a02050
mainline7.064868f5ecade