CVE-2026-64446

Summary

In the Linux kernel, the following vulnerability has been resolved:

staging: rtl8723bs: fix heap buffer overflow in rtw_cfg80211_set_wpa_ie()

supplicant_ie is a 256-byte array in struct security_priv. The WPA and WPA2 IE copy paths use:

memcpy(padapter->securitypriv.supplicant_ie, &pwpa[0], wpa_ielen + 2);

where wpa_ielen is the raw IE length field (u8, 0-255). When a local user supplies a connect request via nl80211 with a crafted WPA IE of length 255, wpa_ielen + 2 equals 257, overflowing the 256-byte buffer by one byte into the adjacent last_mic_err_time field.

rtw_parse_wpa_ie() does not prevent this: its length consistency check compares *(wpa_ie+1) against (u8)(wpa_ie_len-2), which is (u8)(255) == 255 when wpa_ie_len = 257, so the check passes silently.

Add explicit bounds checks for both the WPA and WPA2 paths before the memcpy, rejecting any IE whose total size (wpa_ielen + 2) exceeds the supplicant_ie buffer.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux554c0a3abf216c991c5ebddcdb2c08689ecd290b < a94a643a80a84ceb8139061c3d6bf988d75e45a5affected
LinuxLinux554c0a3abf216c991c5ebddcdb2c08689ecd290b < 2131621986c62c86109ce4d84cf73a73757eb8a6affected
LinuxLinux554c0a3abf216c991c5ebddcdb2c08689ecd290b < 6f20d7b0ee47c470734a69379b0fc6647c519603affected
LinuxLinux554c0a3abf216c991c5ebddcdb2c08689ecd290b < 5d7812360abf3143afcbf5efe4ef242448fa1f28affected
LinuxLinux554c0a3abf216c991c5ebddcdb2c08689ecd290b < 46f66c16a95191d9aca07a72ae6b1252a244e26caffected
LinuxLinux554c0a3abf216c991c5ebddcdb2c08689ecd290b < b9c4bf133c3c47e23baf4f5403b98a953bf58606affected
LinuxLinux554c0a3abf216c991c5ebddcdb2c08689ecd290b < 138cd190efd56ab36c9fdd8fef8749d06937f24baffected
LinuxLinux554c0a3abf216c991c5ebddcdb2c08689ecd290b < 5a752a616e756844388a1a45404db9fc29fec655affected
LinuxLinux4.12affected
LinuxLinux0 < 4.12unaffected
LinuxLinux5.10.261 <= 5.10.*unaffected
LinuxLinux5.15.212 <= 5.15.*unaffected
LinuxLinux6.1.178 <= 6.1.*unaffected
LinuxLinux6.6.145 <= 6.6.*unaffected
LinuxLinux6.12.96 <= 6.12.*unaffected
LinuxLinux6.18.39 <= 6.18.*unaffected
LinuxLinux7.1.4 <= 7.1.*unaffected
LinuxLinux7.2-rc3 <= *unaffected

Weaknesses

References