linux/net/mac80211
Zhao Li 57d503ce32 wifi: mac80211: validate extension-frame layout before RX
Extension frames only have the extension header at the regular 802.11
header offset. The generic RX path can still reach helpers and interface
dispatch code that read regular header address fields before unsupported
extension subtypes are dropped.

mac80211 currently only handles S1G beacon extension frames. Drop other
extension subtypes before they can reach regular-header RX processing.
For S1G beacons, linearize the SKB with the management-frame path and
require the fixed S1G beacon header, including optional fixed fields
indicated by frame control, before generic RX dispatch.

Route S1G beacons through the station/default-link RX path without
regular-header station lookup. Avoid regular-header address reads in the
mac80211 RX paths that process S1G extension beacons, including
accept-frame, duplicate-detection, address-copy, and MLO
address-translation paths.

Also make ieee80211_get_bssid() length-safe before returning the S1G
source-address pointer.

Fixes: 09a740ce35 ("mac80211: receive and process S1G beacons")
Cc: stable@vger.kernel.org
Signed-off-by: Zhao Li <enderaoelyther@gmail.com>
Link: https://patch.msgid.link/20260611161943.91069-5-enderaoelyther@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
History 2026-07-06 14:11:09 +02:00
..
tests wifi: mac80211: parse and apply UHR DBE channel 2026-06-03 14:11:58 +02:00
aead_api.c mac80211: Check crypto_aead_encrypt for errors 2021-03-16 21:20:41 +01:00
aead_api.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_ccm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_cmac.c wifi: mac80211: Use AES-CMAC library in ieee80211_aes_cmac() 2026-03-09 13:27:21 -07:00
aes_cmac.h wifi: mac80211: Use AES-CMAC library in ieee80211_aes_cmac() 2026-03-09 13:27:21 -07:00
aes_gcm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_gmac.c wifi: mac80211: utilize the newly defined CMAC constants 2025-11-20 11:56:19 +01:00
aes_gmac.h wifi: mac80211: utilize the newly defined CMAC constants 2025-11-20 11:56:19 +01:00
agg-rx.c wifi: mac80211: fold tid_ampdu_rx allocations into a flexible array 2026-06-05 09:59:30 +02:00
agg-tx.c wifi: mac80211: allow block ack agreements in NAN Data 2026-04-07 15:36:04 +02:00
airtime.c wifi: mac80211: introduce EHT rate support in AQL airtime 2024-09-06 12:58:36 +02:00
ap.c wifi: mac80211: AP: handle DBE for clients 2026-06-03 14:11:58 +02:00
cfg.c wifi: mac80211: fix fils_discovery double free on alloc failure 2026-07-06 14:11:06 +02:00
chan.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
debug.h wifi: mac80211: don't WARN for late channel/color switch 2025-06-17 14:30:06 +02:00
debugfs.c wifi: mac80211: use kstrtobool_from_user() in debugfs callbacks 2026-04-28 09:31:27 +02:00
debugfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_key.c wifi: mac80211: Clean up debugfs_key deadcode 2025-01-13 13:51:19 +01:00
debugfs_key.h wifi: mac80211: Clean up debugfs_key deadcode 2025-01-13 13:51:19 +01:00
debugfs_netdev.c kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
debugfs_netdev.h wifi: mac80211: fix driver debugfs for vif type change 2024-02-02 13:09:55 +01:00
debugfs_sta.c wifi: mac80211: Remove redundant rcu_read_lock/unlock() in spin_lock 2025-09-19 11:48:14 +02:00
debugfs_sta.h wifi: mac80211: add API to show the link STAs in debugfs 2022-10-07 15:23:41 +02:00
driver-ops.c wifi: mac80211: make monitor link info check more specific 2025-11-11 11:05:19 +01:00
driver-ops.h wifi: mac80211: add NAN peer schedule support 2026-04-07 15:36:03 +02:00
drop.h wifi: mac80211: remove RX_DROP 2026-01-19 10:21:47 +01:00
eht.c wifi: mac80211: move frame RX handling to type files 2026-05-05 14:49:01 +02:00
ethtool.c wifi: mac80211: add tx_handlers_drop statistics to ethtool 2025-09-10 15:04:27 +02:00
fils_aead.c wifi: mac80211: Use AES-CMAC library in aes_s2v() 2026-03-09 13:27:21 -07:00
fils_aead.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
he.c wifi: mac80211: refactor link STA bandwidth update 2026-06-03 14:11:58 +02:00
ht.c wifi: mac80211: refactor link STA bandwidth update 2026-06-03 14:11:58 +02:00
ibss.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
ieee80211_i.h wifi: mac80211: AP: handle DBE for clients 2026-06-03 14:11:58 +02:00
iface.c wifi: mac80211: Free keys associated with NAN Device 2026-06-04 13:03:53 +02:00
Kconfig wifi: mac80211: Use AES-CMAC library in aes_s2v() 2026-03-09 13:27:21 -07:00
key.c wifi: mac80211: allow cipher change on NAN_DATA interfaces 2026-05-20 12:03:38 +02:00
key.h wifi: mac80211: Use AES-CMAC library in ieee80211_aes_cmac() 2026-03-09 13:27:21 -07:00
led.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
led.h leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value 2023-05-25 12:16:27 +01:00
link.c wifi: mac80211: unify link STA removal in vif link removal 2026-06-03 14:11:56 +02:00
main.c wifi: mac80211: update UHR capabilities field order 2026-05-05 14:49:01 +02:00
Makefile wifi: mac80211: move frame RX handling to type files 2026-05-05 14:49:01 +02:00
mesh.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
mesh.h wifi: mac80211: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02:00
mesh_hwmp.c wifi: mac80211: Fix -Wc23-extensions in hwmp_route_info_get() 2026-06-05 09:55:08 +02:00
mesh_pathtbl.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
mesh_plink.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
mesh_ps.c wifi: mac80211: support parsing S1G TIM PVB 2025-09-04 11:19:01 +02:00
mesh_sync.c wifi: mac80211: export ieee80211_calculate_rx_timestamp 2026-04-07 15:36:02 +02:00
mlme.c wifi: mac80211: parse and apply UHR DBE channel 2026-06-03 14:11:58 +02:00
nan.c wifi: mac80211: allocate backup ieee80211_nan_sched_cfg off stack 2026-07-06 10:07:11 +02:00
ocb.c wifi: mac80211: clean up initial STA NSS/bandwidth handling 2026-04-28 09:27:46 +02:00
offchannel.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
parse.c wifi: mac80211: always expose multi-link element 2026-06-03 14:11:57 +02:00
pm.c wifi: cfg80211/mac80211: Add support to get radio index 2025-06-24 15:19:27 +02:00
rate.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
rate.h wifi: mac80211: convert debugfs files to short fops 2024-10-23 16:47:07 +02:00
rc80211_minstrel_ht.c wifi: mac80211: remove unused variables in minstrel_ht_alloc_sta 2026-04-07 15:40:25 +02:00
rc80211_minstrel_ht.h wifi: mac80211: minstrel_ht: remove unused has_mrr member from struct minstrel_priv 2022-10-07 15:25:05 +02:00
rc80211_minstrel_ht_debugfs.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
rx.c wifi: mac80211: validate extension-frame layout before RX 2026-07-06 14:11:09 +02:00
s1g.c wifi: mac80211: add support for NDP ADDBA/DELBA for S1G 2026-03-06 10:52:11 +01:00
scan.c wifi: mac80211: export ieee80211_calculate_rx_timestamp 2026-04-07 15:36:02 +02:00
spectmgmt.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
sta_info.c wifi: mac80211: defer link RX stats percpu free to RCU 2026-07-06 14:11:07 +02:00
sta_info.h wifi: mac80211: fold tid_ampdu_rx allocations into a flexible array 2026-06-05 09:59:30 +02:00
status.c wifi: mac80211: parse and apply UHR DBE channel 2026-06-03 14:11:58 +02:00
tdls.c wifi: mac80211: clarify per-STA bandwidth handling 2026-04-28 09:29:02 +02:00
tkip.c Merge net-next/main to resolve conflicts 2024-10-09 08:59:22 +02:00
tkip.h Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2019-07-08 20:57:08 -07:00
trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace.h wifi: mac80211: add NPCA to chandef tracing 2026-05-05 14:49:03 +02:00
trace_msg.h wifi: mac80211: remove unused MAX_MSG_LEN define 2024-02-08 12:50:09 +01:00
tx.c wifi: mac80211: free ack status frame on TX header build failure 2026-07-06 14:11:07 +02:00
uhr.c wifi: mac80211: update UHR capabilities field order 2026-05-05 14:49:01 +02:00
util.c wifi: mac80211: validate extension-frame layout before RX 2026-07-06 14:11:09 +02:00
vht.c wifi: mac80211: clarify per-STA bandwidth handling 2026-04-28 09:29:02 +02:00
wbrf.c wifi: mac80211: use cfg80211_chandef_get_width() 2025-03-12 09:50:27 +01:00
wep.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
wep.h mac80211: make ieee80211_wep_init() return void 2020-02-07 12:40:34 +01:00
wme.c wifi: mac80211: fix qos on mesh interfaces 2023-03-22 13:46:38 +01:00
wme.h wifi: mac80211: Drop support for TX push path 2022-10-10 11:06:14 +02:00
wpa.c Networking changes for 7.1. 2026-04-14 18:36:10 -07:00
wpa.h wifi: mac80211: refactor CMAC packet handlers 2025-11-20 11:56:19 +01:00