CVE-2026-64445: staging: rtl8723bs: fix WEP length underflow and OOB read in OnAuth()
Greg Kroah-Hartman <[email protected]> Sat, 25 Jul 2026 10:51:02 +0200
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026072539-CVE-2026-64445-2324@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: staging: rtl8723bs: fix WEP length underflow and OOB read in OnAuth() OnAuth() has two bugs in the shared-key authentication path. When the Privacy bit is set, rtw_wep_decrypt() is called without verifying that the frame is long enough to contain a valid WEP IV and ICV. Inside rtw_wep_decrypt(), length is computed as: length = len - WLAN_HDR_A3_LEN - iv_len and then passed as (length - 4) to crc32_le(). If len is less than WLAN_HDR_A3_LEN + iv_len + icv_len (32 bytes), length - 4 is negative and, after the implicit cast to size_t, causes crc32_le() to read far beyond the frame buffer. Add a minimum length check before accessing the IV field and calling the decryption path. When processing a seq=3 response, rtw_get_ie() stores the Challenge Text IE length in ie_len, but the subsequent memcmp() always reads 128 bytes regardless of ie_len. IEEE 802.11 mandates a challenge text of exactly 128 bytes; reject any IE whose length field differs, matching the check already applied to OnAuthClient(). The Linux kernel CVE team has assigned CVE-2026-64445 to this issue. Affected and fixed versions =========================== Issue introduced in 4.12 with commit 554c0a3abf216c991c5ebddcdb2c08689ecd290b and fixed in 5.10.261 with commit 665e1ecb68b4e8419604e70a33f02d1c8b0222c6 Issue introduced in 4.12 with commit 554c0a3abf216c991c5ebddcdb2c08689ecd290b and fixed in 5.15.212 with commit 87cccc2a767f17dcab71e3b9fe5ae29b5516c5ce Issue introduced in 4.12 with commit 554c0a3abf216c991c5ebddcdb2c08689ecd290b and fixed in 6.1.178 with commit c9000c93078e5c0a5a651b077c0ec92a4bc7d580 Issue introduced in 4.12 with commit 554c0a3abf216c991c5ebddcdb2c08689ecd290b and fixed in 6.6.145 with commit 1f6c9d255bdda41216b6e34c96aa2b1abee0bb84 Issue introduced in 4.12 with commit 554c0a3abf216c991c5ebddcdb2c08689ecd290b and fixed in 6.12.96 with commit 3e44a7665f3abd320a80d9c64ee4a93317041b8b Issue introduced in 4.12 with commit 554c0a3abf216c991c5ebddcdb2c08689ecd290b and fixed in 6.18.39 with commit 64ec4192d9c10e96922245d4a6747304cc76b19d Issue introduced in 4.12 with commit 554c0a3abf216c991c5ebddcdb2c08689ecd290b and fixed in 7.1.4 with commit d90b9f39f375c9826ef145605dfe97765d0ecb91 Issue introduced in 4.12 with commit 554c0a3abf216c991c5ebddcdb2c08689ecd290b and fixed in 7.2-rc3 with commit a1fc19d61f661d47204f095b593de507884849f7 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-2026-64445 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/staging/rtl8723bs/core/rtw_mlme_ext.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/665e1ecb68b4e8419604e70a33f02d1c8b0222c6 https://git.kernel.org/stable/c/87cccc2a767f17dcab71e3b9fe5ae29b5516c5ce https://git.kernel.org/stable/c/c9000c93078e5c0a5a651b077c0ec92a4bc7d580 https://git.kernel.org/stable/c/1f6c9d255bdda41216b6e34c96aa2b1abee0bb84 https://git.kernel.org/stable/c/3e44a7665f3abd320a80d9c64ee4a93317041b8b https://git.kernel.org/stable/c/64ec4192d9c10e96922245d4a6747304cc76b19d https://git.kernel.org/stable/c/d90b9f39f375c9826ef145605dfe97765d0ecb91 https://git.kernel.org/stable/c/a1fc19d61f661d47204f095b593de507884849f7