linux/net/wireless
HE WEI (ギカク) cb8afea465 wifi: cfg80211: bound element ID read when checking non-inheritance
cfg80211_is_element_inherited() reads the first data octet of the
candidate element (id = elem->data[0]) to look it up in an extension
non-inheritance list. It does so after testing elem->id, but without
verifying that the element actually has a data octet. A zero-length
extension element (WLAN_EID_EXTENSION with length 0) therefore makes it
read one octet past the end of the element.

_ieee802_11_parse_elems_full() runs this check for every element of a
frame once a non-inheritance context exists -- e.g. while parsing a
per-STA profile of a Multi-Link element in a (re)association response,
or a non-transmitted BSS profile -- so a crafted frame from an AP can
trigger a one-octet slab-out-of-bounds read during element parsing:

  BUG: KASAN: slab-out-of-bounds in cfg80211_is_element_inherited
  Read of size 1 ... in net/wireless/scan.c

Return early (treat the element as inherited) when an extension element
carries no data, mirroring the existing handling of empty ID lists.

The bug was found by fuzzing ieee802_11_parse_elems_full() under KASAN.

Fixes: f7dacfb114 ("cfg80211: support non-inheritance element")
Signed-off-by: HE WEI (ギカク) <skyexpoc@gmail.com>
Link: https://patch.msgid.link/20260707094828.16465-1-skyexpoc@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2026-07-07 14:00:35 +02:00
..
certs wifi: cfg80211: fix certs build to not depend on file order 2023-12-14 09:11:51 +01:00
tests wifi: cfg80211: add a function to parse UHR DBE 2026-05-20 12:03:19 +02:00
.gitignore
ap.c wifi: cfg80211: remove wdev mutex 2023-09-11 11:27:23 +02:00
chan.c wifi: cfg80211: remove 5/10 MHz channel support 2026-06-03 14:07:05 +02:00
core.c wifi: cfg80211: use wiphy work for socket owner autodisconnect 2026-07-07 09:27:42 +02:00
core.h wifi: cfg80211: use wiphy work for socket owner autodisconnect 2026-07-07 09:27:42 +02:00
debugfs.c wifi: cfg80211: Add parameters to radio-specific debugfs directories 2025-10-27 09:18:41 +01:00
debugfs.h
ethtool.c wifi: cfg80211: Remove the redundant wiphy_dev 2025-09-10 15:05:48 +02:00
ibss.c wifi: cfg80211: support key installation on non-netdev wdevs 2026-03-02 11:28:33 +01:00
Kconfig wifi: cfg80211: stop exporting wext symbols 2024-10-08 21:53:31 +02:00
Makefile wifi: mac80211, cfg80211: Export michael_mic() and move it to cfg80211 2026-04-08 08:55:15 +02:00
mesh.c wifi: cfg80211: move DFS related members to links[] in wireless_dev 2024-09-06 13:01:05 +02:00
michael-mic.c wifi: cfg80211: Explicitly include <linux/export.h> in michael-mic.c 2026-04-09 08:54:43 +02:00
mlme.c wifi: cfg80211: validate assoc response length before status and IE access 2026-07-07 09:31:38 +02:00
nl80211.c wifi: cfg80211: use wiphy work for socket owner autodisconnect 2026-07-07 09:27:42 +02:00
nl80211.h wifi: cfg80211: allow representing NPCA in chandef 2026-05-05 14:49:02 +02:00
ocb.c wifi: cfg80211: remove wdev mutex 2023-09-11 11:27:23 +02:00
of.c wifi: Add SPDX ids to some files in the wireless subsystem 2026-03-06 10:54:23 +01:00
pmsr.c wifi: cfg80211: reject empty PMSR peer lists 2026-07-06 14:11:10 +02:00
radiotap.c wifi: Add SPDX ids to some files in the wireless subsystem 2026-03-06 10:54:23 +01:00
rdev-ops.h wifi: cfg80211: add start/stop proximity detection commands 2026-05-05 13:36:30 +02:00
reg.c wifi: cfg80211/mac80211: Add NL80211_IFTYPE_PD for PD PASN and PMSR operations 2026-05-05 13:28:57 +02:00
reg.h wifi: Add SPDX ids to some files in the wireless subsystem 2026-03-06 10:54:23 +01:00
scan.c wifi: cfg80211: bound element ID read when checking non-inheritance 2026-07-07 14:00:35 +02:00
sme.c wifi: cfg80211: use wiphy work for socket owner autodisconnect 2026-07-07 09:27:42 +02:00
sysfs.c Networking changes for 7.1. 2026-04-14 18:36:10 -07:00
sysfs.h
trace.c wifi: Add SPDX ids to some files in the wireless subsystem 2026-03-06 10:54:23 +01:00
trace.h wifi: cfg80211: allow representing NPCA in chandef 2026-05-05 14:49:02 +02:00
util.c wifi: cfg80211: remove 5/10 MHz channel support 2026-06-03 14:07:05 +02:00
wext-compat.c wifi: cfg80211: use strscpy in cfg80211_wext_giwname 2026-05-28 09:50:42 +02:00
wext-compat.h Revert "wifi: cfg80211: unexport wireless_nlevent_flush()" 2024-10-09 08:53:01 +02:00
wext-core.c wifi: Add SPDX ids to some files in the wireless subsystem 2026-03-06 10:54:23 +01:00
wext-priv.c wifi: Add SPDX ids to some files in the wireless subsystem 2026-03-06 10:54:23 +01:00
wext-proc.c wifi: Add SPDX ids to some files in the wireless subsystem 2026-03-06 10:54:23 +01:00
wext-sme.c wifi: cfg80211: define and use wiphy guard 2024-12-04 16:10:52 +01:00