]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
wifi: mwifiex: fix NULL dereference when the AP has HT-cap but no HT-oper
authorDoruk Tan Ozturk <doruk@0sec.ai>
Thu, 16 Jul 2026 10:30:42 +0000 (12:30 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 21 Jul 2026 11:29:52 +0000 (13:29 +0200)
commitc3d68e294cbb6a4090bb219d3dcaca85a011809b
tree307210081bd1bd3c64498f7d095dc4e520edab4b
parent1cb5845a58d8e1f85d5766c6fbcbfddf96c212a1
wifi: mwifiex: fix NULL dereference when the AP has HT-cap but no HT-oper

mwifiex_tdls_add_ht_oper() gates its follow-the-AP-bandwidth path on
bss_desc->bcn_ht_cap being present, but then dereferences a different
pointer, bss_desc->bcn_ht_oper:

if (ISSUPP_CHANWIDTH40(priv->adapter->hw_dot_11n_dev_cap) &&
    bss_desc->bcn_ht_cap &&
    ISALLOWED_CHANWIDTH40(bss_desc->bcn_ht_oper->ht_param))

bcn_ht_cap and bcn_ht_oper are populated independently while parsing the
associated AP's beacon in mwifiex_update_bss_desc_with_ie(): an AP that
advertises an HT Capabilities element but no HT Operation element leaves
bcn_ht_cap non-NULL and bcn_ht_oper NULL. Setting up a TDLS link to a
peer while associated to such an AP then dereferences the NULL
bcn_ht_oper and crashes the kernel. Every other bcn_ht_oper user in the
driver NULL-checks it first.

Guard on the pointer that is actually dereferenced.

Found by 0sec automated security-research tooling (https://0sec.ai).

Fixes: 396939f94084 ("mwifiex: add HT operation IE in TDLS setup confirm")
Cc: stable@vger.kernel.org
Assisted-by: 0sec:multi-model
Signed-off-by: Doruk Tan Ozturk <doruk@0sec.ai>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Link: https://patch.msgid.link/20260716103042.88469-1-doruk@0sec.ai
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/marvell/mwifiex/tdls.c