CVE-2026-90018

staging: rtl8723bs: fix OOB read / stack overflow in rtw_get_wps_attr()

CVE-2026-90018 is fixed in 12 products on 1 platform, first by DEBIAN-CVE-2026-90018, released September 23, 2026. It is not reported as exploited. Patch Radar priority: High.

High
CVSS
8.8
Important
Exploitation
None reported
No vendor assessment
CISA KEV
Not listed
Not in the Known Exploited Vulnerabilities catalog
EPSS
0.0045
39th percentile

In the Linux kernel, the following vulnerability has been resolved: staging: rtl8723bs: fix OOB read / stack overflow in rtw_get_wps_attr() rtw_get_wps_attr() walks WPS attributes inside a WPS IE taken from a wireless management frame. For each candidate attribute it only checks that the fixed 4-byte attribute header (2-byte ID + 2-byte length) fits inside the IE: if (attr_ptr + 4 > wps_ie + wps_ielen) break; u16 attr_id = get_unaligned_be16(attr_ptr); u16 attr_data_len = get_unaligned_be16(attr_ptr + 2); u16 attr_len = attr_data_len + 4; attr_data_len (and therefore attr_len) is read directly from the wire and is never checked against the remaining bytes in the IE before being used as the size of: memcpy(buf_attr, attr_ptr, attr_len); Since attr_len is fully attacker controlled (0 to 65535+4), this is both a heap OOB read of wps_ie, and, more seriously, a stack buffer overflow at several call sites where buf_attr is a single-byte stack variable, e.g. rtw_get_wps_attr_content()'s callers passing WPS_ATTR_SELECTED_REGISTRAR into a stack "u8 sr"/"u8 selected_registrar" (drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c, drivers/staging/rtl8723bs/core/rtw_mlme_ext.c). A crafted WPS IE in a beacon or probe response processed during scanning can therefore smash the stack of the parsing thread. rtw_get_wps_attr_content() itself has no independent length check and simply trusts the attr_len it gets back from rtw_get_wps_attr(), so fixing the bound here also fixes that caller. The "attr_ptr + 4 > wps_ie + wps_ielen" header check above was added by commit 1463ca3ec6601 ("staging: rtl8723bs: fix OOB reads in rtw_get_sec_ie(), rtw_get_wapi_ie(), and rtw_get_wps_attr()"), which bounded the fixed header but never extended the check to cover the variable-length attribute data that follows it. Add that missing check before attr_len is used as a memcpy() length or accepted as a match.

Where it's fixed

ProductFixed inFixReleased
Linux
kernel-64kb · sles 15.7 6.4.0-150700.53.90.1 SUSE-SU-2026:5091-1 Nov 7, 2026
kernel-azure · sles 15.7 6.4.0-150700.53.90.1 SUSE-SU-2026:5091-1 Nov 7, 2026
kernel-default · sles 15.7 6.4.0-150700.53.90.1 SUSE-SU-2026:5091-1 Nov 7, 2026
kernel-default-base · sles 15.7 6.4.0-150700.53.90.1.150700.17.51.1 SUSE-SU-2026:5091-1 Nov 7, 2026
kernel-docs · sles 15.7 6.4.0-150700.53.90.1 SUSE-SU-2026:5091-1 Nov 7, 2026
kernel-livepatch-SLE15-SP7_Update_24 · sles 15.7 1-150700.15.3.1 SUSE-SU-2026:5091-1 Nov 7, 2026
kernel-obs-build · sles 15.7 6.4.0-150700.53.90.1 SUSE-SU-2026:5091-1 Nov 7, 2026
kernel-source · sles 15.7 6.4.0-150700.53.90.1 SUSE-SU-2026:5091-1 Nov 7, 2026
kernel-syms · sles 15.7 6.4.0-150700.53.90.1 SUSE-SU-2026:5091-1 Nov 7, 2026
kernel-zfcpdump · sles 15.7 6.4.0-150700.53.90.1 SUSE-SU-2026:5091-1 Nov 7, 2026
linux · Debian 12.15 (bookworm) 6.1.190-1 DEBIAN-CVE-2026-90018 Sep 23, 2026
linux · Debian 13.5 (trixie) 6.12.111-1 DEBIAN-CVE-2026-90018 Sep 23, 2026
linux · Debian 14 7.2.6-1 DEBIAN-CVE-2026-90018 Sep 23, 2026
linux-6.12 · Debian 12.15 (bookworm) 6.12.111-1~deb12u1 DEBIAN-CVE-2026-90018 Sep 23, 2026

Patch Radar data is free to use with attribution. Terms and how to credit it.

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.