spi: spidev: fix lock inversion between spi_lock and buf_lock
CVE-2026-43319 is fixed in 51 products on 1 platform, first by DEBIAN-CVE-2026-43319, released May 15, 2026. It is not reported as exploited. Patch Radar priority: Routine.
In the Linux kernel, the following vulnerability has been resolved: spi: spidev: fix lock inversion between spi_lock and buf_lock The spidev driver previously used two mutexes, spi_lock and buf_lock, but acquired them in different orders depending on the code path: write()/read(): buf_lock -> spi_lock ioctl(): spi_lock -> buf_lock This AB-BA locking pattern triggers lockdep warnings and can cause real deadlocks: WARNING: possible circular locking dependency detected spidev_ioctl() -> mutex_lock(&spidev->buf_lock) spidev_sync_write() -> mutex_lock(&spidev->spi_lock) *** DEADLOCK *** The issue is reproducible with a simple userspace program that performs write() and SPI_IOC_WR_MAX_SPEED_HZ ioctl() calls from separate threads on the same spidev file descriptor. Fix this by simplifying the locking model and removing the lock inversion entirely. spidev_sync() no longer performs any locking, and all callers serialize access using spi_lock. buf_lock is removed since its functionality is fully covered by spi_lock, eliminating the possibility of lock ordering issues. This removes the lock inversion and prevents deadlocks without changing userspace ABI or behaviour.
Where it's fixed
| Product | Fixed in | Fix | Released |
|---|---|---|---|
| Linux | |||
| dtb-aarch64 · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-64kb · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-64kb · sles 15.7 | 6.4.0-150700.53.73.2 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-64kb · sles 16.0 | 6.12.0-160000.37.1 | SUSE-SU-2026:23231-1 | Aug 11, 2026 |
| kernel-azure · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-azure · sles 15.7 | 6.4.0-150700.53.73.2 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-azure · sles 16.0 | 6.12.0-160000.37.1 | SUSE-SU-2026:23231-1 | Aug 11, 2026 |
| kernel-default · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-default · sles 15.7 | 6.4.0-150700.53.73.2 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-default · sles 16.0 | 6.12.0-160000.37.1 | SUSE-SU-2026:23237-1 | Aug 11, 2026 |
| kernel-default-base · opensuse-leap 16.0 | 6.12.0-160000.37.1.160000.2.19 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-default-base · sles 15.7 | 6.4.0-150700.53.73.2.150700.17.41.4 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-default-base · sles 16.0 | 6.12.0-160000.37.1.160000.2.19 | SUSE-SU-2026:23231-1 | Aug 11, 2026 |
| kernel-docs · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-docs · sles 15.7 | 6.4.0-150700.53.73.1 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-docs · sles 16.0 | 6.12.0-160000.37.1 | SUSE-SU-2026:23231-1 | Aug 11, 2026 |
| kernel-kvmsmall · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-kvmsmall · sles 16.0 | 6.12.0-160000.37.1 | SUSE-SU-2026:23231-1 | Aug 11, 2026 |
| kernel-livepatch-SLE15-SP7-RT_Update_18 · sles 15.7 | 1-150700.1.5.1 | SUSE-SU-2026:3130-1 | Jul 20, 2026 |
| kernel-livepatch-SLE15-SP7_Update_19 · sles 15.7 | 1-150700.15.3.4 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-obs-build · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-obs-build · sles 15.7 | 6.4.0-150700.53.73.2 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-obs-qa · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-obs-qa · sles 16.0 | 6.12.0-160000.37.1 | SUSE-SU-2026:23231-1 | Aug 11, 2026 |
| kernel-rt · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-source · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-source · sles 15.7 | 6.4.0-150700.53.73.1 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-source · sles 16.0 | 6.12.0-160000.37.1 | SUSE-SU-2026:23231-1 | Aug 11, 2026 |
| kernel-syms · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-syms · sles 15.7 | 6.4.0-150700.53.73.1 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-syms · sles 16.0 | 6.12.0-160000.37.1 | SUSE-SU-2026:23231-1 | Aug 11, 2026 |
| kernel-uek · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-core · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-core · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-core · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-core · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-devel · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-devel · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-core · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-core · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-deprecated · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-deprecated · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-desktop · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-desktop · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-extra · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-extra · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-extra-netfilter · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-extra-netfilter · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-usb · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-usb · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-wireless · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-debug-modules-wireless · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-devel · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-devel · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-doc · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-doc · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-core · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-core · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-deprecated · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-deprecated · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-desktop · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-desktop · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-extra · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-extra · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-extra-netfilter · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-extra-netfilter · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-usb · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-usb · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-wireless · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-modules-wireless · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-tools · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek-tools · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-core · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-core · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-devel · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-devel · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-core · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-core · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-deprecated · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-deprecated · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-desktop · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-desktop · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-extra · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-extra · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-extra-netfilter · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-extra-netfilter · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-usb · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-usb · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-wireless · ol 10 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-uek64k-modules-wireless · ol 9 | 0:6.12.0-204.92.4.2.el9uek | ELSA-2026-50372 | Jul 2, 2026 |
| kernel-zfcpdump · opensuse-leap 16.0 | 6.12.0-160000.37.1 | OPENSUSE-SU-2026:21555-1 | Aug 12, 2026 |
| kernel-zfcpdump · sles 15.7 | 6.4.0-150700.53.73.2 | SUSE-SU-2026:3166-1 | Jul 21, 2026 |
| kernel-zfcpdump · sles 16.0 | 6.12.0-160000.37.1 | SUSE-SU-2026:23231-1 | Aug 11, 2026 |
| linux · Debian 13.5 (trixie) | 6.12.85-1 | DEBIAN-CVE-2026-43319 | May 15, 2026 |
| linux · Debian 14 | 6.19.6-1 | DEBIAN-CVE-2026-43319 | May 15, 2026 |
Patch Radar data is free to use with attribution. Terms and how to credit it.
Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.