Junglewise Threat Intelligence

CVE-2024-46750: Linux Kernel improper locking in PCI pci_bus_lock

CVE-2024-46750 · Severity: medium · CVSS 5.5 · Published 2024-09-18

Technologies: Linux Kernel. Vendors: Linux.

Executive brief

A vulnerability in the Linux kernel's PCI bus management could allow a local user to cause a system crash or instability. The issue stems from improper locking when resetting hardware components connected via PCI, which can lead to unpredictable system behavior. This primarily impacts system availability and operational stability.

Technical details

A race condition exists in the Linux kernel PCI subsystem due to improper locking in the pci_bus_lock() function. While the function locked connected devices, it failed to lock the PCI bridge itself during secondary bus resets triggered via pci_reset_bus(). This missing bridge lock was identified via lockdep warnings in pci_bridge_secondary_bus_reset(). An attacker with local access could potentially exploit this synchronization issue to cause a kernel panic or hardware state corruption. The fix involves adding pci_dev_lock() for the bridge (bus->self) within the pci_bus_lock() and pci_bus_trylock() routines, while ensuring recursive locking deadlocks are avoided.

Affected products

  • Linux Linux Kernel up to 4.19.322, 4.20 to 5.4.284, 5.5 to 5.10.226, 5.11 to 5.15.167, 5.16 to 6.1.110, 6.2 to 6.6.51, 6.7 to 6.10.10

Timeline

  • 2024-05-30: other: Initial patch authored
  • 2024-09-18: disclosed: CVE published
  • 2024-09-12: patched: Patch committed to stable trees

References

Related threats