CVE-2026-43319Linux内核spidev驱动组件中存在严重的锁反转漏洞。由于write/read路径与ioctl路径分别以相反的顺序获取spi_lock和buf_lock,形成了典型的AB-BA死锁风险。本地攻击者利用多线程并发调用特定接口即可触发死锁,导致系统可用性受损。
该漏洞源于Linux内核spidev驱动中互斥锁管理不当导致的死锁问题。驱动内部维护了spi_lock和buf_lock两把互斥锁。在write()和read()系统调用路径中,驱动先获取buf_lock,后获取spi_lock;而在ioctl()路径中,顺序恰恰相反,先获取spi_lock,后获取buf_lock。这种AB-BA模式的锁顺序违反了锁层级原则。当用户空间程序在一个线程中执行写操作,同时在另一个线程中对同一文件描述符执行SPI_IOC_WR_MAX_SPEED_HZ等ioctl操作时,两个线程可能互相持有对方需要的锁并等待释放,从而形成死锁。攻击者无需特殊权限,利用简单的多线程并发代码即可触发该问题,导致内核线程挂起,系统失去响应。