]> git.baikalelectronics.ru Git - kernel.git/commit
ath9k: fix OOB read ar9300_eeprom_restore_internal
authorZekun Shen <bruceshenzk@gmail.com>
Sat, 19 Jun 2021 13:29:14 +0000 (09:29 -0400)
committerKalle Valo <kvalo@codeaurora.org>
Sun, 29 Aug 2021 07:12:09 +0000 (10:12 +0300)
commit3b2bcee2d5fa132d6fb0fd0b4361f62fe30192d4
treee381bd1b126751a422561adc2157ecf40cc628e6
parent7e064d7f578da83c82c9ab8774d7990a73c1a532
ath9k: fix OOB read ar9300_eeprom_restore_internal

Bad header can have large length field which can cause OOB.
cptr is the last bytes for read, and the eeprom is parsed
from high to low address. The OOB, triggered by the condition
length > cptr could cause memory error with a read on
negative index.

There are some sanity check around length, but it is not
compared with cptr (the remaining bytes). Here, the
corrupted/bad EEPROM can cause panic.

I was able to reproduce the crash, but I cannot find the
log and the reproducer now. After I applied the patch, the
bug is no longer reproducible.

Signed-off-by: Zekun Shen <bruceshenzk@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/YM3xKsQJ0Hw2hjrc@Zekuns-MBP-16.fios-router.home
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c