CVE-2026-43307Linux内核中的adxl380加速度计驱动程序存在一处高危漏洞。问题出在FIFO数据处理逻辑上,中断处理程序假设FIFO中的数据总量总是扫描元素数量的整数倍。然而,硬件传感器实际上是以单样本方式填充FIFO的。当FIFO中的剩余样本数不足一个完整批次时,驱动程序仍按批次读取,导致读取数量超过FIFO实际缓冲区的数据量。这可能引发越界读取,导致内核崩溃或信息泄露。
该漏洞位于Linux内核的`drivers/iio/accel/adxl380.c`驱动文件中。当IIO子系统启用多个通道(如x, y, z轴)时,驱动程序定义了一个扫描元素数量N。在中断服务程序(ISR)中,代码从FIFO状态寄存器获取当前数据量,并尝试读取N的倍数的数据。由于硬件填充数据是逐个进行的,如果中断触发时FIFO中的数据量恰好不是N的倍数,驱动程序的计算逻辑会导致其读取超出FIFO物理边界的内存地址。这属于典型的越界读取漏洞。攻击者利用此漏洞需具备本地低权限,通过触发特定的IIO buffer操作,可导致内核空指针解引用、系统崩溃(DoS),或在特定条件下读取内核敏感内存。