Executive brief
A vulnerability in the Linux kernel's PCI subsystem could allow a local user to cause system instability or potentially gain unauthorized access. The issue stems from incorrect lock management when handling PCI slots, which can lead to the kernel attempting to unlock resources it does not hold or incorrectly releasing locks held by other processes. This could result in system crashes or data corruption.
Technical details
A vulnerability exists in the Linux kernel PCI subsystem due to improper error handling in pci_slot_trylock(). Following a previous change that delegated bridge device locking to pci_bus_trylock(), the code failed to remove a redundant pci_dev_unlock() call on the failure path. This root cause leads to a 'double unlock' scenario where the kernel either attempts to release a lock it does not hold (triggering a warning) or incorrectly unlocks a mutex held by a different thread. An attacker with local access could potentially exploit this race condition to cause a denial of service or achieve privilege escalation. The issue has been resolved by removing the redundant unlock call in the affected drivers/pci/pci.c component.
Affected products
- Linux Linux Kernel 4.19.322 to 4.20, 5.4.284 to 5.5, 5.10.226 to 5.10.252, 5.15.167 to 5.15.202, 6.1.110 to 6.1.165, 6.6.51 to 6.6.128, 6.10.10 to 6.12.75, 6.13 to 6.18.16, 6.19 to 6.19.6
Timeline
- 2026-05-06: disclosed: Initial disclosure of the vulnerability
- 2026-02-06: patched: Mainline patch committed by Bjorn Helgaas
- 2026-05-06: advisory: NVD publication date
References
- https://git.kernel.org/stable/c/0425aaf20b407d2f2cf3bf469808e4a35f9abb8b
- https://git.kernel.org/stable/c/8b08ea9690b212b7bf7f12414039259cf34b1aa0
- https://git.kernel.org/stable/c/9368d1ee62829b08aa31836b3ca003803caf0b72
- https://git.kernel.org/stable/c/943ed56606a7ab2fe5a99cad572dd17d484310c7
- https://git.kernel.org/stable/c/a19b61fdb958ffadbba85b43c991eb9fc70c1c1c
- https://git.kernel.org/stable/c/bd435f4b738130d732ef64e0e57e45185f77165d
- https://git.kernel.org/stable/c/ebb27b7399ab8b9eb1f792b329aa5f6250c590d4