Linux kernel SPI driver UAF via unprotected driver_override in __driver_attach
CVE-2026-31487 Published on April 22, 2026
spi: use generic driver_override infrastructure
In the Linux kernel, the following vulnerability has been resolved:
spi: use generic driver_override infrastructure
When a driver is probed through __driver_attach(), the bus' match()
callback is called without the device lock held, thus accessing the
driver_override field without a lock, which can cause a UAF.
Fix this by using the driver-core driver_override infrastructure taking
care of proper locking internally.
Note that calling match() from __driver_attach() without the device lock
held is intentional. [1]
Also note that we do not enable the driver_override feature of struct
bus_type, as SPI - in contrast to most other buses - passes "" to
sysfs_emit() when the driver_override pointer is NULL. Thus, printing
"\n" instead of "(null)\n".
Products Associated with CVE-2026-31487
Want to know whenever a new CVE is published for Linux Kernel? stack.watch will email you.
Affected Versions
Linux:- Version 5039563e7c25eccd7fec1de6706011009d1c5665 and below eedf220442d13b6d97294e5b0ac8a2c38ee1a1a0 is affected.
- Version 5039563e7c25eccd7fec1de6706011009d1c5665 and below c73a58661a760373d08a6883af4f0bb5cc991a67 is affected.
- Version 5039563e7c25eccd7fec1de6706011009d1c5665 and below e0ae367a2de06c49aa1de6ec9b1ab6860bbb2cf0 is affected.
- Version 5039563e7c25eccd7fec1de6706011009d1c5665 and below cc34d77dd48708d810c12bfd6f5bf03304f6c824 is affected.
- Version 4.20 is affected.
- Before 4.20 is unaffected.
- Version 6.12.80, <= 6.12.* is unaffected.
- Version 6.18.21, <= 6.18.* is unaffected.
- Version 6.19.11, <= 6.19.* is unaffected.
- Version 7.0, <= * is unaffected.