Description
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.
Product status
6d7b97b23e114c8fbb825e6721164d228c1af3fc (git) before ecb1c163166759dec004c1fdb9709b8a5992fc8e
6d7b97b23e114c8fbb825e6721164d228c1af3fc (git) before 9dd6aae4bc7bfa11088d928670a3315eae542769
6d7b97b23e114c8fbb825e6721164d228c1af3fc (git) before 744c19e266b0d2628c5951439195dcef27eadacf
6d7b97b23e114c8fbb825e6721164d228c1af3fc (git) before 83226c71af53fb9b3cad40cb9a9a79f36d68c020
6d7b97b23e114c8fbb825e6721164d228c1af3fc (git) before d6869537013b1f21b292342752d97868b79b5934
6d7b97b23e114c8fbb825e6721164d228c1af3fc (git) before e9f1081bc775146156def0dbc821b92f35d56afb
6d7b97b23e114c8fbb825e6721164d228c1af3fc (git) before 568173ad9bd0b46cc6cd937dea8791e9b5eefa57
6d7b97b23e114c8fbb825e6721164d228c1af3fc (git) before d748603f12baff112caa3ab7d39f50100f010dbd
3.0
Any version before 3.0
5.10.258 (semver)
5.15.209 (semver)
6.1.175 (semver)
6.6.140 (semver)
6.12.88 (semver)
6.18.30 (semver)
7.0.7 (semver)
7.1-rc3 (original_commit_for_fix)
References
git.kernel.org/...c/ecb1c163166759dec004c1fdb9709b8a5992fc8e
git.kernel.org/...c/9dd6aae4bc7bfa11088d928670a3315eae542769
git.kernel.org/...c/744c19e266b0d2628c5951439195dcef27eadacf
git.kernel.org/...c/83226c71af53fb9b3cad40cb9a9a79f36d68c020
git.kernel.org/...c/d6869537013b1f21b292342752d97868b79b5934
git.kernel.org/...c/e9f1081bc775146156def0dbc821b92f35d56afb
git.kernel.org/...c/568173ad9bd0b46cc6cd937dea8791e9b5eefa57
git.kernel.org/...c/d748603f12baff112caa3ab7d39f50100f010dbd