CVE-2026-31389Linux内核SPI驱动程序存在一个释放后重用(UAF)漏洞。该漏洞发生在SPI控制器注册期间,若per-cpu统计信息分配失败,系统未能妥善处理从驱动核心注销的流程,导致已释放的驱动资源仍被访问。本地低权限攻击者可利用此缺陷触发内核崩溃或执行任意代码,从而对系统的机密性、完整性和可用性造成严重影响。
该漏洞源于Linux内核SPI子系统的错误处理逻辑缺陷。在`spi_register_controller`函数中,代码首先调用`spi_controller_add_dev`向驱动核心注册控制器,随后尝试分配per-cpu统计信息。如果分配失败,函数直接返回错误状态,但未先调用`spi_controller_remove_dev`来注销已注册的设备。这导致驱动核心仍持有指向已释放内存的指针。当系统后续尝试操作这些指针时,触发Use-After-Free。攻击者可以通过加载特制的SPI驱动模块或触发特定的硬件初始化失败来利用此漏洞,结合堆喷射技术,可能实现本地权限提升或内核拒绝服务。