CVE-2026-31485Linux内核中的spi-fsl-lpspi驱动程序存在释放后使用(UAF)漏洞。问题出在驱动程序移除时的资源管理顺序上。由于SPI控制器注销被延迟,而DMA通道已被同步拆除,正在进行的SPI传输会尝试访问已释放的内存地址,导致空指针解引用。本地低权限攻击者可利用此漏洞触发内核崩溃,甚至可能实现权限提升。
该漏洞源于驱动程序在 `fsl_lpspi_probe` 中使用了 `devm_spi_register_controller()`,这导致SPI控制器的注销操作被推迟到 `fsl_lpspi_remove()` 函数执行完毕之后。然而,`fsl_lpspi_remove()` 内部已经同步执行了DMA通道的销毁操作。如果在DMA通道被拆除、但SPI控制器尚未注销的这段窗口期内,用户空间程序通过 `/dev/spidev` 设备发起I/O请求(如ioctl调用),驱动程序的回调函数 `fsl_lpspi_dma_transfer` 将尝试访问已被释放的DMA资源,从而触发内核空指针解引用错误。这种竞态条件允许攻击者使系统崩溃或执行任意代码。