Description
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 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
5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e to < 77e642af7f2f6029e12a35c847c56cbd0466e799affected5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e to < 982b8fcdbb28f63bbbf02f0822c0bbda12ec27edaffected5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e to < 58767b41f87244eebaa5a475b9d276c83b89b933affected5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e to < 2402c9e2644b7e10c7aaaf87bf12743d7e363559affected5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e to < 54a9cc5bd70b0d77a5069d4c46998c679a10c857affected5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e to < 8bbef2b1ebfbadc0b9c37bbbf9c9e26fe2e41960affected5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e to < 46cda9d42f0d6ec3057d878ddb1f38c0ab9f51dfaffected5e6e3a92b9a4c9416b17f468fa5c7fa2233b8b4e to < e667aee1c192d67d27c803007bfa9c6e0873e959affected
Linux Linux
Default version status: affected
3.0affected0 to < 3.0unaffected5.10.271 to ≤ 5.10.*unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.54 to ≤ 6.18.*unaffected7.2.8 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/77e642af7f2f6029e12a35c847c56cbd0466e799 ↗
- https://git.kernel.org/stable/c/982b8fcdbb28f63bbbf02f0822c0bbda12ec27ed ↗
- https://git.kernel.org/stable/c/58767b41f87244eebaa5a475b9d276c83b89b933 ↗
- https://git.kernel.org/stable/c/2402c9e2644b7e10c7aaaf87bf12743d7e363559 ↗
- https://git.kernel.org/stable/c/54a9cc5bd70b0d77a5069d4c46998c679a10c857 ↗
- https://git.kernel.org/stable/c/8bbef2b1ebfbadc0b9c37bbbf9c9e26fe2e41960 ↗
- https://git.kernel.org/stable/c/46cda9d42f0d6ec3057d878ddb1f38c0ab9f51df ↗
- https://git.kernel.org/stable/c/e667aee1c192d67d27c803007bfa9c6e0873e959 ↗