]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: rtl8xxxu: fix slab-out-of-bounds in rtl8xxxu_sta_add
authorAli Tariq <alitariq45892@gmail.com>
Thu, 25 Dec 2025 11:54:29 +0000 (11:54 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 16 Feb 2026 09:19:46 +0000 (10:19 +0100)
commit 86c946bcc00f6390ef65e9614ae60a9377e454f8 upstream.

The driver does not set hw->sta_data_size, which causes mac80211 to
allocate insufficient space for driver private station data in
__sta_info_alloc(). When rtl8xxxu_sta_add() accesses members of
struct rtl8xxxu_sta_info through sta->drv_priv, this results in a
slab-out-of-bounds write.

KASAN report on RISC-V (VisionFive 2) with RTL8192EU adapter:

  BUG: KASAN: slab-out-of-bounds in rtl8xxxu_sta_add+0x31c/0x346
  Write of size 8 at addr ffffffd6d3e9ae88 by task kworker/u16:0/12

Set hw->sta_data_size to sizeof(struct rtl8xxxu_sta_info) during
probe, similar to how hw->vif_data_size is configured. This ensures
mac80211 allocates sufficient space for the driver's per-station
private data.

Tested on StarFive VisionFive 2 v1.2A board.

Fixes: eef55f1545c9 ("wifi: rtl8xxxu: support multiple interfaces in {add,remove}_interface()")
Cc: stable@vger.kernel.org
Signed-off-by: Ali Tariq <alitariq45892@gmail.com>
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20251225115430.13011-1-alitariq45892@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/realtek/rtl8xxxu/core.c

index 3e87c571e24195cc22bed5d4fe730be4efa638af..a17c1084931b0eaa749e94639b03a5613fac8b28 100644 (file)
@@ -7927,6 +7927,7 @@ static int rtl8xxxu_probe(struct usb_interface *interface,
                goto err_set_intfdata;
 
        hw->vif_data_size = sizeof(struct rtl8xxxu_vif);
+       hw->sta_data_size = sizeof(struct rtl8xxxu_sta_info);
 
        hw->wiphy->max_scan_ssids = 1;
        hw->wiphy->max_scan_ie_len = IEEE80211_MAX_DATA_LEN;