CVE-2026-98703 PUBLISHED

wifi: mac80211: minstrel_ht: validate fixed rate index

Assigner: Linux
Reserved: 25.09.2026 Published: 18.10.2026 Updated: 18.10.2026

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

wifi: mac80211: minstrel_ht: validate fixed rate index

The fixed_rate_idx debugfs file is a plain u32 attribute, so any value can be written to it. minstrel_ht_update_stats() then copies the value into mi->max_tp_rate[] and mi->max_prob_rate, and minstrel_ht_set_rate() uses MI_RATE_GROUP()/MI_RATE_IDX() to index minstrel_mcs_groups[] (42 entries) and mi->groups[].rates[] (10 entries) with it.

Writing e.g. 65535 selects group 4095 and rate index 15, far outside both arrays. The out-of-bounds entries are dereferenced and updated as struct minstrel_rate_stats (retry counts, etc.), so the invalid index corrupts adjacent kernel memory. With CONFIG_UBSAN_BOUNDS the access is reported as an array-index-out-of-bounds in minstrel_ht_set_rate().

Only a valid group/rate pair, or U32_MAX to disable fixed rate processing, can be used safely, so reject any other value when the debugfs file is written.

The file is only reachable through a root-only debugfs mount, so this is not a privilege boundary. The out-of-bounds access is still a bug that must not be reachable through a writable debugfs attribute.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 24f7580e852b5472b51eea322bb78454df0054b8 to f8ab6ae1fa360b0191252677f41e781dcb0ffe6e (excl.)
  • affected from 24f7580e852b5472b51eea322bb78454df0054b8 to 42aa9feb27b600809414a3c6b0c650bafba542a9 (excl.)
  • affected from 24f7580e852b5472b51eea322bb78454df0054b8 to 43082d604a9937b94ceb2e484403956d0f363324 (excl.)
  • affected from 24f7580e852b5472b51eea322bb78454df0054b8 to 15fb9e3cea55fbc378261ce35a32b0f8828f0000 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 3.1 is affected
  • unaffected from 0 to 3.1 (excl.)
  • unaffected from 6.12.113 to 6.12.* (incl.)
  • unaffected from 6.18.56 to 6.18.* (incl.)
  • unaffected from 7.2.10 to 7.2.* (incl.)
  • unaffected from 7.3-rc6 to * (incl.)

References