In the Linux kernel, the following vulnerability has been resolved:
iio: health: afe4403: Fix oob read in afe4403readraw
KASAN report out-of-bounds read as follows:
BUG: KASAN: global-out-of-bounds in afe4403readraw+0x42e/0x4c0 Read of size 4 at addr ffffffffc02ac638 by task cat/279
Call Trace: afe4403readraw iioreadchannelinfo devattr_show
The buggy address belongs to the variable: afe4403channelleds+0x18/0xffffffffffffe9e0
This issue can be reproduced by singe command:
$ cat /sys/bus/spi/devices/spi0.0/iio\:device0/inintensity6raw
The array size of afe4403channelleds is less than channels, so access with chan->address cause OOB read in afe4403readraw. Fix it by moving access before use it.