wifi: mac80211: consume only present negotiated TTLM maps
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.12.92, 6.18.34, 7.0.11
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: consume only present negotiated TTLM maps ieee80211_tid_to_link_map_size_ok() validates negotiated TTLM elements against the number of link-map entries indicated by link_map_presence. ieee80211_parse_neg_ttlm() must consume the same layout. The parser advanced its cursor for every TID, including TIDs whose presence bit is clear and therefore have no map bytes in the element. A sparse map can then make a later present TID read past the validated element. The bad bytes land in neg_ttlm->{up,down}link[tid] but are gated by valid_links before being applied to driver state, so a peer cannot turn the read into a policy change. Under KUnit + KASAN with an exact-sized element allocation the OOB read is reported as a slab-out-of-bounds; whether the same trigger fires under the production RX path depends on surrounding allocator state. Advance the cursor only when the current TID has a map present.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 8f500fbc6c655976c8062b1f1e55bd0b3095d6c2 · fixed in f7d395dc5008168ac5b9c1ac2791e59a6078cca1; From 8f500fbc6c655976c8062b1f1e55bd0b3095d6c2 · fixed in 2dd9304727c7041df0a599595910bdbe02ad03c5; From 8f500fbc6c655976c8062b1f1e55bd0b3095d6c2 · fixed in 2becaaeebe230ade1fcd5d0f1cde4d6ee93ec78f; From 8f500fbc6c655976c8062b1f1e55bd0b3095d6c2 · fixed in a6e6ccd5bd07155c2add6c74ce1a5e68ad3b95ea
- Linux Linux
6.9
- KernelLinux
From 6.9.0 · fixed in 6.12.92; From 6.13.0 · fixed in 6.18.34; From 6.19.0 · fixed in 7.0.11