summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHaofeng Li <lihaofeng@kylinos.cn>2026-07-01 17:33:27 +0800
committerJohannes Berg <johannes.berg@intel.com>2026-07-06 14:11:08 +0200
commit74e27cd1d98b546fdb276008a83708d062339661 (patch)
treeb4743569542bfe0702f483926ba89bf122d8a883 /include
parent843fe9bc583b7686ca68312ac9319c9240a73c03 (diff)
downloadlwn-74e27cd1d98b546fdb276008a83708d062339661.tar.gz
lwn-74e27cd1d98b546fdb276008a83708d062339661.zip
wifi: cfg80211: validate EHT MLE before MLD ID read
cfg80211_gen_new_ie() copies ML probe response elements from the parent frame when the parent EHT multi-link element has an MLD ID matching the nontransmitted BSSID index. The code only checked that the extension element had more than one byte before calling ieee80211_mle_get_mld_id(). That helper assumes a BASIC MLE with enough common info and documents that callers must first use ieee80211_mle_type_ok(). Attack chain: malicious AP sends a short EHT MLE in an MBSSID beacon. cfg80211_inform_bss_frame_data() stores the copied IE buffer. cfg80211_parse_mbssid_data() builds the nontransmitted BSS IE. cfg80211_gen_new_ie() sees the EHT MLE in the parent frame. ieee80211_mle_get_mld_id() then reads past the IE boundary. Validate the MLE type and size before reading the MLD ID. This matches the contract required by the MLE helper and rejects the short element before any internal MLE fields are accessed. Cc: stable@vger.kernel.org Fixes: 61dcfa8c2a8f ("wifi: cfg80211: copy multi-link element from the multi-link probe request's frame body to the generated elements") Signed-off-by: Haofeng Li <lihaofeng@kylinos.cn> Link: https://patch.msgid.link/20260701093327.2680709-1-lihaofeng@kylinos.cn Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions