8.8

CVE-2026-68326

wifi: mwifiex: bound uAP association event IEs to the event buffer

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

wifi: mwifiex: bound uAP association event IEs to the event buffer

mwifiex_process_uap_event() handles EVENT_UAP_STA_ASSOC by exposing the
(re)association request IEs that the firmware copies into the event:

	sinfo->assoc_req_ies = &event->data[len];
	len = (u8 *)sinfo->assoc_req_ies - (u8 *)&event->frame_control;
	sinfo->assoc_req_ies_len = le16_to_cpu(event->len) - (u16)len;

event->len is supplied by the device firmware and is never validated,
and the subtraction is unchecked.  assoc_req_ies points into
adapter->event_body[MAX_EVENT_SIZE], a fixed-size array embedded in the
kmalloc()'d struct mwifiex_adapter.

On the ap_11n_enabled path mwifiex_set_sta_ht_cap() walks these IEs with
cfg80211_find_ie(), whose for_each_element() loop dereferences each
element header.  A firmware-reported event->len larger than the bytes
actually received makes assoc_req_ies_len describe IEs that extend past
event_body, so the walk reads out of the adapter slab object, a
slab-out-of-bounds read (KASAN: slab-out-of-bounds in cfg80211_find_ie).
An event->len smaller than the header instead makes the int subtraction
negative, which wraps to a huge size_t when stored in assoc_req_ies_len.
The same length is handed to cfg80211_new_sta(), so a more modest
over-claim can also copy stale event_body bytes into the
NL80211_CMD_NEW_STATION notification.

A malicious or malfunctioning mwifiex device (USB/SDIO/PCIe) can deliver
such an event while the interface is in AP/uAP mode.

Validate event->len before use: reject a length that underflows the
header or that would place the IEs outside the event_body[] buffer the
event was copied into.  event->len here is struct mwifiex_assoc_event.len,
a payload field internal to this event, not the transport frame length,
so it is validated in this handler rather than at the generic
MWIFIEX_TYPE_EVENT receive path, which only sees the event cause and the
transport frame length.  The bound is against event_body[MAX_EVENT_SIZE]
rather than the actually-received length because the transports store the
event differently (USB and SDIO leave the 4-byte event header in
event_skb, PCIe strips it via skb_pull), whereas event_body is the single
fixed buffer all of them copy the event into.  This is the event-path
analogue of the receive-path bounds checks added in commit 119585281617
("wifi: mwifiex: Fix OOB and integer underflow when rx packets").
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version e568634ae7ac379661c90731d480e067929420a1
Version < a616616b938f7922a93e79bef16b4643c57c0922
Status affected
Version e568634ae7ac379661c90731d480e067929420a1
Version < 1ae00b6d9a6c82eb3de151d9b04ed59e06cc100f
Status affected
Version e568634ae7ac379661c90731d480e067929420a1
Version < e7e93d3e8c240bdb70c41e79d169d74dfb442843
Status affected
Version e568634ae7ac379661c90731d480e067929420a1
Version < a3f47d7c75ddad1a14621a309286f9fae3cba191
Status affected
Version e568634ae7ac379661c90731d480e067929420a1
Version < ad26c75ae25749313248f06510ebe43b5bf4adcc
Status affected
Version e568634ae7ac379661c90731d480e067929420a1
Version < d21464d93f8ba464dc3d7b4b31c6e0adcd9f659c
Status affected
Version e568634ae7ac379661c90731d480e067929420a1
Version < b6766d7ea43edf5de9d5a572bc58b631d09efe4b
Status affected
Version e568634ae7ac379661c90731d480e067929420a1
Version < f0858bfc7d3cab411a447b88e3ef970e575032c9
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 3.5
Status affected
Version 0
Version < 3.5
Status unaffected
Version <= 5.10.*
Version 5.10.265
Status unaffected
Version <= 5.15.*
Version 5.15.216
Status unaffected
Version <= 6.1.*
Version 6.1.183
Status unaffected
Version <= 6.6.*
Version 6.6.148
Status unaffected
Version <= 6.12.*
Version 6.12.101
Status unaffected
Version <= 6.18.*
Version 6.18.42
Status unaffected
Version <= 7.1.*
Version 7.1.6
Status unaffected
Version <= *
Version 7.2
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.27% 0.186
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
416baaa9-dc9f-4396-8d5f-8c081fb06d67 8.8 2.8 5.9
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/a3f47d7c75ddad1a14621a309286f9fae3cba191
https://git.kernel.org/stable/c/ad26c75ae25749313248f06510ebe43b5bf4adcc
https://git.kernel.org/stable/c/d21464d93f8ba464dc3d7b4b31c6e0adcd9f659c
https://git.kernel.org/stable/c/b6766d7ea43edf5de9d5a572bc58b631d09efe4b
https://git.kernel.org/stable/c/f0858bfc7d3cab411a447b88e3ef970e575032c9
https://git.kernel.org/stable/c/1ae00b6d9a6c82eb3de151d9b04ed59e06cc100f
https://git.kernel.org/stable/c/a616616b938f7922a93e79bef16b4643c57c0922
https://git.kernel.org/stable/c/e7e93d3e8c240bdb70c41e79d169d74dfb442843