openwrt/package/kernel
Antonio Flores 5e769878ad mac80211: CVE-2024-46760: rtw88: schedule rx work after everything is set up
link: https://lore.kernel.org/all/2024091842-CVE-2024-46760-1eb3@gregkh
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.

The Linux kernel CVE team has assigned CVE-2024-46760 to this issue.

Affected and fixed versions
===========================

	Fixed in 6.6.51 with commit c83d464b82a8
	Fixed in 6.10.10 with commit 25eaef533bf3
	Fixed in 6.11 with commit adc539784c98

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-46760
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	drivers/net/wireless/realtek/rtw88/usb.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/c83d464b82a8ad62ec9077637f75d73fe955635a
	https://git.kernel.org/stable/c/25eaef533bf3ccc6fee5067aac16f41f280e343e
	https://git.kernel.org/stable/c/adc539784c98a7cc602cbf557debfc2e7b9be8b3

Signed-off-by: Antonio Flores <antflores627@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16420
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-09-21 13:28:30 +02:00
..
ath10k-ct ath10k-ct: bump to version 6.9 2024-08-12 20:56:59 +02:00
bcm27xx-gpu-fw bcm27xx-gpu-fw: update to v1.20240424 2024-05-10 09:15:15 +02:00
bcm63xx-cfe bcm63xx-cfe: update to latest version 2024-06-26 19:26:34 +02:00
bpf-headers bpf-headers: update to version 6.6 2024-09-20 23:17:43 +02:00
button-hotplug button-hotplug: simplify build 2022-10-24 20:49:34 +02:00
cryptodev-linux packages: refresh patches 2024-05-31 11:30:06 +02:00
dtc/patches package: kernel: dtc: Add DTO support 2017-11-06 16:39:41 +01:00
gpio-button-hotplug gpio-button-hotplug: add vendor button handling 2024-08-02 22:11:05 +02:00
gpio-nct5104d gpio-nct5104d: fix compilation with kernel 6.6 2024-05-13 10:15:17 +02:00
lantiq ltq-ptm: propagate reset errors to probe 2024-09-06 22:23:16 +02:00
leds-gca230718 package: kernel: leds-gca230718: fix build with Linux 6.6 2024-04-12 02:07:30 +01:00
leds-ws2812b kernel: leds-ws2812b: fix build with Linux >= 5.18 2023-07-08 15:10:12 +01:00
linux packages: remove remnants of kernels below 6.6 2024-09-21 13:03:49 +02:00
mac80211 mac80211: CVE-2024-46760: rtw88: schedule rx work after everything is set up 2024-09-21 13:28:30 +02:00
mt76 mt76: update to Git HEAD (2024-09-05) 2024-09-05 15:12:33 +02:00
mt7621-qtn-rgmii treewide: rename ZyXEL to Zyxel 2024-08-25 15:08:25 +02:00
mwlwifi mwlwifi: fix mac80211 broken after update to 6.9.9 2024-07-28 19:16:34 +02:00
nat46 treewide: update PKG_MIRROR_HASH to zst 2024-04-06 11:24:18 +02:00
qca-nss-dp kernel: qca-nss-dp: add back printing attached PHY-s 2024-05-21 12:29:33 +02:00
qca-ssdk kernel: qca-ssdk: set OF node for the SFP PHY 2024-07-09 12:33:17 +02:00
r8101 kernel: r8101: print link status when link up 2024-08-18 19:31:55 +02:00
r8125 kernel: r8125: print link status when link up 2024-08-18 19:57:41 +02:00
r8126 kernel: r8126: print link status when link up 2024-08-18 19:57:47 +02:00
r8168 kernel: r8168: print link status when link up 2024-08-18 19:57:36 +02:00
rtc-rv5c386a kernel: Make use of KERNEL_MAKE 2022-12-17 20:12:31 +01:00
rtl8812au-ct rtl8812au-ct: fix build with mac80211 6.9.9 backport 2024-07-13 14:25:36 +02:00
trelay package: drop PKG_VERSION for purely local packages 2020-07-15 18:33:56 +02:00
ubnt-ledbar ubnt-ledbar: adapt for kernel v6.6 2024-05-11 12:38:13 +02:00
ubootenv-nvram kernel: ubootenv-nvram: driver for RAM backed environments 2023-08-20 01:14:06 +02:00