wifi: ath5k: do not access array OOB
- 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 5.10.258, 5.15.209, 6.1.175, 6.6.140, 6.12.88, and 2 more
- 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
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: ath5k: do not access array OOB Vincent reports: > The ath5k driver seems to do an array-index-out-of-bounds access as > shown by the UBSAN kernel message: > UBSAN: array-index-out-of-bounds in drivers/net/wireless/ath/ath5k/base.c:1741:20 > index 4 is out of range for type 'ieee80211_tx_rate [4]' > ... > Call Trace: > <TASK> > dump_stack_lvl+0x5d/0x80 > ubsan_epilogue+0x5/0x2b > __ubsan_handle_out_of_bounds.cold+0x46/0x4b > ath5k_tasklet_tx+0x4e0/0x560 [ath5k] > tasklet_action_common+0xb5/0x1c0 It is real. 'ts->ts_final_idx' can be 3 on 5212, so: info->status.rates[ts->ts_final_idx + 1].idx = -1; with the array defined as: struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES]; while the size is: #define IEEE80211_TX_MAX_RATES 4 is indeed bogus. Set this 'idx = -1' sentinel only if the array index is less than the array size. As mac80211 will not look at rates beyond the size (IEEE80211_TX_MAX_RATES). Note: The effect of the OOB write is negligible. It just overwrites the next member of info->status, i.e. ack_signal.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 6d7b97b23e114c8fbb825e6721164d228c1af3fc · fixed in ecb1c163166759dec004c1fdb9709b8a5992fc8e; From 6d7b97b23e114c8fbb825e6721164d228c1af3fc · fixed in 9dd6aae4bc7bfa11088d928670a3315eae542769; From 6d7b97b23e114c8fbb825e6721164d228c1af3fc · fixed in 744c19e266b0d2628c5951439195dcef27eadacf; From 6d7b97b23e114c8fbb825e6721164d228c1af3fc · fixed in 83226c71af53fb9b3cad40cb9a9a79f36d68c020; From 6d7b97b23e114c8fbb825e6721164d228c1af3fc · fixed in d6869537013b1f21b292342752d97868b79b5934; From 6d7b97b23e114c8fbb825e6721164d228c1af3fc · fixed in e9f1081bc775146156def0dbc821b92f35d56afb; From 6d7b97b23e114c8fbb825e6721164d228c1af3fc · fixed in 568173ad9bd0b46cc6cd937dea8791e9b5eefa57; From 6d7b97b23e114c8fbb825e6721164d228c1af3fc · fixed in d748603f12baff112caa3ab7d39f50100f010dbd
- Linux Linux
3.0
- KernelLinux
From 3.0.0 · fixed in 5.10.258; From 5.11.0 · fixed in 5.15.209; From 5.16.0 · fixed in 6.1.175; From 6.2.0 · fixed in 6.6.140; From 6.7.0 · fixed in 6.12.88; From 6.13.0 · fixed in 6.18.30; From 6.19.0 · fixed in 7.0.7
References 8
git.kernel.org
- stable/c/ecb1c163166759dec004c1fdb9709b8a5992fc8e
- stable/c/9dd6aae4bc7bfa11088d928670a3315eae542769
- stable/c/744c19e266b0d2628c5951439195dcef27eadacf
- stable/c/83226c71af53fb9b3cad40cb9a9a79f36d68c020
- stable/c/d6869537013b1f21b292342752d97868b79b5934
- stable/c/e9f1081bc775146156def0dbc821b92f35d56afb
- stable/c/568173ad9bd0b46cc6cd937dea8791e9b5eefa57
- stable/c/d748603f12baff112caa3ab7d39f50100f010dbd