]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
wifi: wilc1000: fix u8 overflow in SSID scan buffer size calculation
authorYasuaki Torimaru <yasuakitorimaru@gmail.com>
Tue, 24 Mar 2026 10:06:24 +0000 (19:06 +0900)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 24 Mar 2026 14:32:14 +0000 (15:32 +0100)
commitd049e56b1739101d1c4d81deedb269c52a8dbba0
tree4d07bd58baf606dbbf78f15f2ef827253fde84c2
parenta1d9d8e833781c44ab688708804ce35f20f3cbbd
wifi: wilc1000: fix u8 overflow in SSID scan buffer size calculation

The variable valuesize is declared as u8 but accumulates the total
length of all SSIDs to scan. Each SSID contributes up to 33 bytes
(IEEE80211_MAX_SSID_LEN + 1), and with WILC_MAX_NUM_PROBED_SSID (10)
SSIDs the total can reach 330, which wraps around to 74 when stored
in a u8.

This causes kmalloc to allocate only 75 bytes while the subsequent
memcpy writes up to 331 bytes into the buffer, resulting in a 256-byte
heap buffer overflow.

Widen valuesize from u8 to u32 to accommodate the full range.

Fixes: c5c77ba18ea6 ("staging: wilc1000: Add SDIO/SPI 802.11 driver")
Cc: stable@vger.kernel.org
Signed-off-by: Yasuaki Torimaru <yasuakitorimaru@gmail.com>
Link: https://patch.msgid.link/20260324100624.983458-1-yasuakitorimaru@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/microchip/wilc1000/hif.c