What’s Vulnerable › Vulnerabilities
CVE-2024-46760: wifi: rtw88: usb: schedule rx work after everything is set up
- Severity: medium (CVSS 5.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.2% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2024-09-18 · updated 2026-06-17
- Weakness: CWE-476
Description
In the Linux kernel, the following vulnerability has been resolved: wifi: rtw88: usb: schedule rx work after everything is set up Right now it's possible to hit NULL pointer dereference in rtw_rx_fill_rx_status on hw object and/or its fields because initialization routine can start getting USB replies before rtw_dev is fully setup. The stack trace looks like this: rtw_rx_fill_rx_status rtw8821c_query_rx_desc rtw_usb_rx_handler ... queue_work rtw_usb_read_port_complete ... usb_submit_urb rtw_usb_rx_resubmit rtw_usb_init_rx rtw_usb_probe So while we do the async stuff rtw_usb_probe continues and calls rtw_register_hw, which does all kinds of initialization (e.g. via ieee80211_register_hw) that rtw_rx_fill_rx_status relies on. Fix this by moving the first usb_submit_urb after everything is set up. For me, this bug manifested as: [ 8.893177] rtw_8821cu 1-1:1.2: band wrong, packet dropped [ 8.910904] rtw_8821cu 1-1:1.2: hw->conf.chandef.chan NULL in rtw_rx_fill_rx_status because I'm using Larry's backport of rtw88 driver with the NULL checks in rtw_rx_fill_rx_status.
Affected products
- Linux kernel: before 6.6.51; from 6.7 before 6.10.10 — fixed in 6.10.10, 6.6.51
How to fix
Upgrade to a fixed version: Linux kernel 6.10.10, 6.6.51. Check the vendor advisory for mitigations.
References
- https://git.kernel.org/stable/c/25eaef533bf3ccc6fee5067aac16f41f280e343e
- https://git.kernel.org/stable/c/adc539784c98a7cc602cbf557debfc2e7b9be8b3
- https://git.kernel.org/stable/c/c83d464b82a8ad62ec9077637f75d73fe955635a
Get alerted when CVE-2024-46760 or the next vulnerability affects your stack