CVE-2026-43211

PCI: Fix pci_slot_trylock() error handling

State
Published
Severity
7.8 High
Published
May 6, 2026
Updated
Oct 19, 2026
Reserved
May 1, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

PCI: Fix pci_slot_trylock() error handling

Commit a4e772898f8b ("PCI: Add missing bridge lock to pci_bus_lock()") delegates the bridge device's pci_dev_trylock() to pci_bus_trylock() in pci_slot_trylock(), but it forgets to remove the corresponding pci_dev_unlock() when pci_bus_trylock() fails.

Before a4e772898f8b, the code did:

if (!pci_dev_trylock(dev)) /* <- lock bridge device */ goto unlock; if (dev->subordinate) { if (!pci_bus_trylock(dev->subordinate)) { pci_dev_unlock(dev); /* <- unlock bridge device */ goto unlock; } }

After a4e772898f8b the bridge-device lock is no longer taken, but the pci_dev_unlock(dev) on the failure path was left in place, leading to the bug.

This yields one of two errors:

1. A warning that the lock is being unlocked when no one holds it. 2. An incorrect unlock of a lock that belongs to another thread.

Fix it by removing the now-redundant pci_dev_unlock(dev) on the failure path.

[Same patch later posted by Keith at https://patch.msgid.link/20260116184150.3013258-1-kbusch@meta.com]

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • e2355d513b89a2cb511b4ded0deb426cdb01acd0 to before ebb27b7399ab8b9eb1f792b329aa5f6250c590d4Affected
  • 04e85a3285b0e5c5af6fd2c0fd6e95ffecc01945 to before fbe06a3058114bf95a17a4941b205f4b321c6f0aAffected
  • 7253b4fed46471cc247c6cacefac890a8472c083 to before 943ed56606a7ab2fe5a99cad572dd17d484310c7Affected
  • 78c6e39fef5c428960aff742149bba302dd46f5a to before a19b61fdb958ffadbba85b43c991eb9fc70c1c1cAffected
  • a4e772898f8bf2e7e1cf661a12c60a5612c4afab to before 0425aaf20b407d2f2cf3bf469808e4a35f9abb8bAffected
  • a4e772898f8bf2e7e1cf661a12c60a5612c4afab to before bd435f4b738130d732ef64e0e57e45185f77165dAffected
  • a4e772898f8bf2e7e1cf661a12c60a5612c4afab to before 8b08ea9690b212b7bf7f12414039259cf34b1aa0Affected
  • a4e772898f8bf2e7e1cf661a12c60a5612c4afab to before 9368d1ee62829b08aa31836b3ca003803caf0b72Affected
  • 0790b89c7e911003b8c50ae50e3ac7645de1fae9Affected
  • df77a678c33871a6e4ac5b54a71662f1d702335bAffected
  • 81c68e218ab883dfa368460a59b674084c0240daAffected
  • 5.10.226 to before 5.10.252Affected
  • 5.15.167 to before 5.15.202Affected
  • 6.1.110 to before 6.1.165Affected
  • 6.6.51 to before 6.6.128Affected
  • 4.19.322 to before 4.20Affected
  • 5.4.284 to before 5.5Affected
  • 6.10.10 to before 6.11Affected
LinuxLinux
  • 6.11Affected
  • before 6.11Not affected
  • 5.10.252 through 5.10.*Not affected
  • 5.15.202 through 5.15.*Not affected
  • 6.1.165 through 6.1.*Not affected
  • 6.6.128 through 6.6.*Not affected
  • 6.12.75 through 6.12.*Not affected
  • 6.18.16 through 6.18.*Not affected
  • 6.19.6 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.