CVE-2026-98824: wifi: mac80211: validate TX status rate metadata
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: validate TX status rate metadata
minstrelhttxstatus() converts the HT/VHT rate reported in a TX status into a group and rate index and uses those to index the minstrelht rate tables. The existing validation only checked that an entry was present and had tries recorded; it did not check that the reported MCS, spatial stream count and bandwidth are representable by the tables, so malformed metadata passed to minstrelhtgetstats() or minstrelhtrigetstats() could be used as an out-of-bounds index.
Validate the rate metadata in the common TX status path instead of only in minstrelht, since the values are used by more than rate control. The legacy ieee80211txrate array and the rateinfo based entries are sanitized in ieee80211txstatusext() and ieee80211txrateupdate() before any consumer runs: an entry that does not describe a valid rate for its encoding is dropped. minstrelht keeps the checks that depend on its own tables, i.e. the supported number of spatial streams, the MCS group size and the supported bandwidths.
This does not take away the driver's responsibility to report sane values, it only prevents a single bad report from corrupting mac80211 state. No WARNON() is added: with paniconwarn a driver bug would otherwise turn into a denial of service.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Systems using the Linux kernel's mac80211 Wi-Fi stack and receiving malformed transmit-status rate metadata from a driver are exposed. The affected path includes rate-control handling, including minstrel_ht.
What must an attacker control to trigger the out-of-bounds indexing?
The issue requires malformed TX-status rate metadata to reach the kernel, with rate fields such as MCS, spatial-stream count, or bandwidth that are not representable by the relevant rate tables. The provided information does not establish whether this can be supplied by a remote attacker versus requiring a faulty or malicious driver or device.
How does the fix reduce exposure?
The fix sanitizes both legacy ieee80211_tx_rate entries and rate_info-based entries in ieee80211_tx_status_ext() and ieee80211_tx_rate_update() before consumers process them. Invalid entries that do not describe a valid rate for their encoding are dropped, while minstrel_ht retains checks specific to its own supported streams, group sizes, and bandwidths.