CVE-2026-90018 in Linux
Zusammenfassung
von VulDB • 16.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
staging: rtl8723bs: Behebung eines OOB-Lesezugriffs / Stack-Überlaufs in rtw_get_wps_attr()
rtw_get_wps_attr() durchläuft WPS-Attribute innerhalb einer WPS IE (Information Element), die aus einem drahtlosen Management-Frame stammt. Für jedes potenzielle Attribut wird lediglich geprüft, ob der feste 4-Byte-Attributkopf (2-Byte-ID + 2-Byte-Länge) innerhalb der IE passt:
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 (und damit auch attr_len) wird direkt von der Leitung gelesen und vor seiner Verwendung als Größe für:
memcpy(buf_attr, attr_ptr, attr_len);
nicht gegen die verbleibenden Bytes in der IE überprüft. Da attr_len vollständig vom Angreifer kontrolliert werden kann (0 bis 65535+4), handelt es sich hierbei sowohl um einen OOB-Lesezugriff auf wps_ie als auch – was schwerwiegender ist – um einen Stack-Buffer-Overflow an mehreren Aufrufstellen, bei denen buf_attr eine einzelne Byte-große Stapelvariable ist. Dies betrifft beispielsweise die Aufrufer von rtw_get_wps_attr_content(), die WPS_ATTR_SELECTED_REGISTRAR an den Stapel „u8 sr“/„u8 selected_registrar“ übergeben (drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c, drivers/staging/rtl8723bs/core/rtw_mlme_ext.c). Ein speziell angefertigter WPS IE in einem Beacon oder Probe Response, der während des Scannens verarbeitet wird, kann daher den Stack des Parsing-Threads zerstören.
rtw_get_wps_attr_content() selbst verfügt über keine unabhängige Längenprüfung und vertraut einfach dem attr_len, das es von rtw_get_wps_attr() zurückgegeben bekommt; die Behebung dieser Grenze behebt somit auch diesen Aufrufer.
Die oben genannte Kopfzeilen-Prüfung „attr_ptr + 4 > wps_ie + wps_ielen“ wurde durch den Commit 1463ca3ec6601 („staging: rtl8723bs: Behebung von OOB-Lesezugriffen in rtw_get_sec_ie(), rtw_get_wapi_ie() und rtw_get_wps_attr()“) hinzugefügt, der zwar den festen Kopf begrenzte, die Prüfung jedoch nicht auf die darauffolgenden Attribute mit variabler Länge ausdehnte. Fügen Sie diese fehlende Überprüfung hinzu, bevor attr_len als memcpy()-Länge verwendet oder als Übereinstimmung akzeptiert wird.
If you want to get best quality of vulnerability data, you may have to visit VulDB.