Description
In the Linux kernel, the following vulnerability has been resolved: 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).
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
396939f94084d5923d558e9f22db48bc51156e47 to < e1770f7410b4232a0267924f99751dc9c5ca31afaffected396939f94084d5923d558e9f22db48bc51156e47 to < 8c2058717fd06f05d421c2d3adf1dff3c3abcda1affected396939f94084d5923d558e9f22db48bc51156e47 to < fba7eb7b248ea0618235f504158b685d752a153aaffected396939f94084d5923d558e9f22db48bc51156e47 to < eb42c3c8fd479166c42984728754cd779c71fd60affected396939f94084d5923d558e9f22db48bc51156e47 to < 45011e4d9ba3f2182e5df64be65888044fa20771affected396939f94084d5923d558e9f22db48bc51156e47 to < 9375a4ea4121625ef27a46b74781cda66a5cc61baffected396939f94084d5923d558e9f22db48bc51156e47 to < cca4398aa305c22016d1714f388e2fa6ea4e5ad4affected396939f94084d5923d558e9f22db48bc51156e47 to < c3d68e294cbb6a4090bb219d3dcaca85a011809baffected
Linux Linux
Default version status: affected
3.16affected0 to < 3.16unaffected5.10.265 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/e1770f7410b4232a0267924f99751dc9c5ca31af ↗
- https://git.kernel.org/stable/c/8c2058717fd06f05d421c2d3adf1dff3c3abcda1 ↗
- https://git.kernel.org/stable/c/fba7eb7b248ea0618235f504158b685d752a153a ↗
- https://git.kernel.org/stable/c/eb42c3c8fd479166c42984728754cd779c71fd60 ↗
- https://git.kernel.org/stable/c/45011e4d9ba3f2182e5df64be65888044fa20771 ↗
- https://git.kernel.org/stable/c/9375a4ea4121625ef27a46b74781cda66a5cc61b ↗
- https://git.kernel.org/stable/c/cca4398aa305c22016d1714f388e2fa6ea4e5ad4 ↗
- https://git.kernel.org/stable/c/c3d68e294cbb6a4090bb219d3dcaca85a011809b ↗