The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] rtl8xxxu: fix slab-out-of-bounds in rtl8xxxu_sta_add
@ 2025-12-25 11:54 Ali Tariq
  2025-12-26  1:55 ` Ping-Ke Shih
  2025-12-31  8:08 ` Ping-Ke Shih
  0 siblings, 2 replies; 3+ messages in thread
From: Ali Tariq @ 2025-12-25 11:54 UTC (permalink / raw)
  To: Jes.Sorensen; +Cc: linux-wireless, netdev, linux-kernel, stable, Ali Tariq

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>
---
 drivers/net/wireless/realtek/rtl8xxxu/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/core.c b/drivers/net/wireless/realtek/rtl8xxxu/core.c
index c06ad064f37c..f9a527f6a175 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/core.c
@@ -7826,6 +7826,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;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* RE: [PATCH] rtl8xxxu: fix slab-out-of-bounds in rtl8xxxu_sta_add
  2025-12-25 11:54 [PATCH] rtl8xxxu: fix slab-out-of-bounds in rtl8xxxu_sta_add Ali Tariq
@ 2025-12-26  1:55 ` Ping-Ke Shih
  2025-12-31  8:08 ` Ping-Ke Shih
  1 sibling, 0 replies; 3+ messages in thread
From: Ping-Ke Shih @ 2025-12-26  1:55 UTC (permalink / raw)
  To: Ali Tariq, Jes.Sorensen@gmail.com
  Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, stable@vger.kernel.org

Ali Tariq <alitariq45892@gmail.com> wrote:
> 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
> 

No need empty lines after Fixes and Cc tags. I will remove them while getting
merged into rtw tree.

> Signed-off-by: Ali Tariq <alitariq45892@gmail.com>

Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] rtl8xxxu: fix slab-out-of-bounds in rtl8xxxu_sta_add
  2025-12-25 11:54 [PATCH] rtl8xxxu: fix slab-out-of-bounds in rtl8xxxu_sta_add Ali Tariq
  2025-12-26  1:55 ` Ping-Ke Shih
@ 2025-12-31  8:08 ` Ping-Ke Shih
  1 sibling, 0 replies; 3+ messages in thread
From: Ping-Ke Shih @ 2025-12-31  8:08 UTC (permalink / raw)
  To: Ali Tariq, Jes.Sorensen
  Cc: linux-wireless, netdev, linux-kernel, stable, Ali Tariq

Ali Tariq <alitariq45892@gmail.com> wrote:

> 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>

1 patch(es) applied to rtw-next branch of rtw.git, thanks.

86c946bcc00f wifi: rtl8xxxu: fix slab-out-of-bounds in rtl8xxxu_sta_add

---
https://github.com/pkshih/rtw.git


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-12-31  8:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-25 11:54 [PATCH] rtl8xxxu: fix slab-out-of-bounds in rtl8xxxu_sta_add Ali Tariq
2025-12-26  1:55 ` Ping-Ke Shih
2025-12-31  8:08 ` Ping-Ke Shih

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox