HIGH
iio ADXL380 FIFO OOB
CVE-2026-43307
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI6.1MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: iio: accel: adxl380: Avoid reading more entries than present in FIFO The interrupt handler reads FIFO entries in batches of N samples, where N is the number of scan elements that have been enabled. However, the sensor fills the FIFO one sample at a time, even when more than one channel is enabled. Therefore,the number of entries reported by the FIFO status registers may not be a multiple of N; if this number is not a multiple, the number of entries read from the FIFO may exceed the number of entries actually present. To fix the above issue, round down the number of FIFO entries read from the status registers so that it is always a multiple of N.
02KernelScan AI Analysis
Risk summary
Local users with access to IIO devices can trigger a bounded out-of-bounds write in the ADXL380 accelerometer driver's FIFO handling. The interrupt handler writes up to (fifo_set_size - 1) samples past the end of the kernel FIFO buffer when the hardware FIFO level is not a multiple of the enabled scan-element count, causing limited kernel heap corruption and potential kernel crash.
Vulnerability analysis
The root cause is in the interrupt handler's FIFO reading logic where it processes entries in fixed batches equal to the number of enabled scan elements (fifo_set_size). Because the sensor fills the FIFO one sample at a time, the status register may report a level that is not a multiple of fifo_set_size. Without rounding down, the final batch writes past the valid data region of st->fifo_buf, resulting in a bounded out-of-bounds write on the kernel heap. The fix adds rounddown(fifo_entries, st->fifo_set_size) to ensure only complete batches are read. This is locally exploitable through the IIO device interface.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 6.12 | 6.12.75 | a40f31608598 |
| 6.18 | 6.18.16 | a8e88edfd69d |
| 6.19 | 6.19.6 | f42ddb2945ae |
| mainline | 7.0 | c1b14015224c |