CVE-2026-98186

Summary

In the Linux kernel, the following vulnerability has been resolved:

wifi: mwifiex: bound the pairwise-cipher OUI walk to the IE length

mwifiex_search_oui_in_ie() reads a pairwise-cipher (PTK) count from a beacon/probe-response RSN or WPA information element and then walks that many 4-byte OUIs, comparing each with memcmp(). The count comes straight from the (attacker-supplied) IE and is never checked against the element's own length, and the callers admit the element on element_id alone (has_ieee_hdr() / has_vendor_hdr(), no length check). A crafted RSN/WPA IE with a large pairwise count therefore makes the walk read up to 255 * 4 bytes past the element – an out-of-bounds read of the kmemdup()'d beacon buffer, reachable from any AP whose beacon/probe response is processed during scan-result parsing.

Pass the number of IE bytes available at the OUI list and bound the walk to the element. Keep the length signed and reject a negative value before any unsigned arithmetic, so a small or zero IE length cannot underflow to a large size_t and defeat the bound.

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

Affected Software

VendorProductVersion RangeStatus
LinuxLinux5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e < 77e642af7f2f6029e12a35c847c56cbd0466e799affected
LinuxLinux5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e < 982b8fcdbb28f63bbbf02f0822c0bbda12ec27edaffected
LinuxLinux5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e < 58767b41f87244eebaa5a475b9d276c83b89b933affected
LinuxLinux5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e < 2402c9e2644b7e10c7aaaf87bf12743d7e363559affected
LinuxLinux5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e < 54a9cc5bd70b0d77a5069d4c46998c679a10c857affected
LinuxLinux5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e < 8bbef2b1ebfbadc0b9c37bbbf9c9e26fe2e41960affected
LinuxLinux5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e < 46cda9d42f0d6ec3057d878ddb1f38c0ab9f51dfaffected
LinuxLinux5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e < e667aee1c192d67d27c803007bfa9c6e0873e959affected
LinuxLinux3.0affected
LinuxLinux0 < 3.0unaffected
LinuxLinux5.10.271 <= 5.10.*unaffected
LinuxLinux5.15.222 <= 5.15.*unaffected
LinuxLinux6.1.189 <= 6.1.*unaffected
LinuxLinux6.6.158 <= 6.6.*unaffected
LinuxLinux6.12.112 <= 6.12.*unaffected
LinuxLinux6.18.54 <= 6.18.*unaffected
LinuxLinux7.2.8 <= 7.2.*unaffected
LinuxLinux7.3-rc4 <= *unaffected

Weaknesses

References