CVE-2026-31560Linux内核中的spi-dw-dma驱动程序存在一个安全漏洞。当驱动程序等待DMA事务完成时,如果发生错误,设备可能处于无当前消息的状态。由于代码在打印错误日志时未正确处理此异常情况,直接尝试访问不存在的消息结构,导致系统发生崩溃。该漏洞允许本地低权限攻击者触发内核空指针解引用,从而造成系统拒绝服务,严重影响系统可用性。
该漏洞位于Linux内核的`drivers/spi/spi-dw-dma.c`驱动文件中,属于一种典型的空指针解引用漏洞。在SPI DMA传输过程中,若发生传输错误,驱动程序会调用错误处理流程。在特定异常路径下,当系统尝试等待事务完成(wait finish transaction)时,当前的消息上下文可能已经被清空或从未正确初始化。原始代码在打印错误日志时,试图从可能为空的`msg`结构体中提取设备信息进行输出,这直接触发了内核异常,导致系统崩溃。攻击者需具备本地低权限(PR:L),通过向SPI控制器发送特定的恶意指令序列或利用用户空间接口触发异常条件,即可使内核宕机,造成拒绝服务(DoS)。修复方案将日志打印源从`msg`改为`struct spi_controller`中的`dev`,确保在消息无效时仍能安全引用控制器设备。