Linux Kernel spi-fsl-lpspi UAF via teardown order issue
CVE-2026-31485 Published on April 22, 2026
spi: spi-fsl-lpspi: fix teardown order issue (UAF)
In the Linux kernel, the following vulnerability has been resolved:
spi: spi-fsl-lpspi: fix teardown order issue (UAF)
There is a teardown order issue in the driver. The SPI controller is
registered using devm_spi_register_controller(), which delays
unregistration of the SPI controller until after the fsl_lpspi_remove()
function returns.
As the fsl_lpspi_remove() function synchronously tears down the DMA
channels, a running SPI transfer triggers the following NULL pointer
dereference due to use after free:
| fsl_lpspi 42550000.spi: I/O Error in DMA RX
| Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
[...]
| Call trace:
| fsl_lpspi_dma_transfer+0x260/0x340 [spi_fsl_lpspi]
| fsl_lpspi_transfer_one+0x198/0x448 [spi_fsl_lpspi]
| spi_transfer_one_message+0x49c/0x7c8
| __spi_pump_transfer_message+0x120/0x420
| __spi_sync+0x2c4/0x520
| spi_sync+0x34/0x60
| spidev_message+0x20c/0x378 [spidev]
| spidev_ioctl+0x398/0x750 [spidev]
[...]
Switch from devm_spi_register_controller() to spi_register_controller() in
fsl_lpspi_probe() and add the corresponding spi_unregister_controller() in
fsl_lpspi_remove().
Products Associated with CVE-2026-31485
Want to know whenever a new CVE is published for Linux Kernel? stack.watch will email you.
Affected Versions
Linux:- Version 5314987de5e5f5e38436ef4a69328bc472bbd63e and below fbe6f40caeebb0b1ea9dfedc259124c1d3cda7a6 is affected.
- Version 5314987de5e5f5e38436ef4a69328bc472bbd63e and below ca4483f36ac1b62e69f8b182c5b8f059e0abecfb is affected.
- Version 5314987de5e5f5e38436ef4a69328bc472bbd63e and below e3fd54f8b0317fbccc103961ddd660f2a32dcf0b is affected.
- Version 5314987de5e5f5e38436ef4a69328bc472bbd63e and below adb25339b66112393fd6892ceff926765feb5b86 is affected.
- Version 5314987de5e5f5e38436ef4a69328bc472bbd63e and below d5d01f24bc6fbde40b4e567ef9160194b61267bc is affected.
- Version 5314987de5e5f5e38436ef4a69328bc472bbd63e and below e89e2b97253c124d37bf88e96e5e8ce5c3aeeec3 is affected.
- Version 5314987de5e5f5e38436ef4a69328bc472bbd63e and below 15650dfbaeeb14bcaaf053b93cf631db8d465300 is affected.
- Version 5314987de5e5f5e38436ef4a69328bc472bbd63e and below b341c1176f2e001b3adf0b47154fc31589f7410e is affected.
- Version 4.10 is affected.
- Before 4.10 is unaffected.
- Version 5.10.253, <= 5.10.* is unaffected.
- Version 5.15.203, <= 5.15.* is unaffected.
- Version 6.1.168, <= 6.1.* is unaffected.
- Version 6.6.131, <= 6.6.* 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.