In the Linux kernel, the following vulnerability has been resolved:
PCI/DPC: Fix use-after-free on concurrent DPC and hot-removal
Keith reports a use-after-free when a DPC event occurs concurrently to hot-removal of the same portion of the hierarchy:
The dpc_handler() awaits readiness of the secondary bus below the Downstream Port where the DPC event occurred. To do so, it polls the config space of the first child device on the secondary bus. If that child device is concurrently removed, accesses to its struct pci_dev cause the kernel to oops.
That's because pci_bridge_wait_for_secondary_bus() neglects to hold a reference on the child device. Before v6.3, the function was only called on resume from system sleep or on runtime resume. Holding a reference wasn't necessary back then because the pciehp IRQ thread could never run concurrently. (On resume from system sleep, IRQs are not enabled until after the resume_noirq phase. And runtime resume is always awaited before a PCI device is removed.)
However starting with v6.3, pci_bridge_wait_for_secondary_bus() is also called on a DPC event. Commit 53b54ad074de ("PCI/DPC: Await readiness of secondary bus after reset"), which introduced that, failed to appreciate that pci_bridge_wait_for_secondary_bus() now needs to hold a reference on the child device because dpc_handler() and pciehp may indeed run concurrently. The commit was backported to v5.10+ stable kernels, so that's the oldest one affected.
Add the missing reference acquisition.
Abridged stack trace:
BUG: unable to handle page fault for address: 00000000091400c0 CPU: 15 PID: 2464 Comm: irq/53-pcie-dpc 6.9.0 RIP: pci_bus_read_config_dword+0x17/0x50 pci_dev_wait() pci_bridge_wait_for_secondary_bus() dpc_reset_link() pcie_do_recovery() dpc_handler()
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade python-perfUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-toolsUpgrade python-perf-debuginfoUpgrade kernel-livepatch-5.10.224-212.876Upgrade bpftoolUpgrade kernel-headersUpgrade kernel-tools-develUpgrade kernel-tools-debuginfoUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade bpftool-debuginfoUpgrade perf-debuginfoUpgrade kernelUpgrade kernel-debuginfoUpgrade kernel-develUpgrade kernel-livepatch-5.15.165-110.161 | Sep 27, 2024 | Aug 17, 2024 |
| Amazon_linux_2023 | — | Upgrade perf-debuginfoUpgrade kernel-headersUpgrade kernel-modules-extra-commonUpgrade python3-perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-develUpgrade perfUpgrade kernel-tools-develUpgrade kernel-libbpf-staticUpgrade kernel-debuginfoUpgrade kernel-livepatch-6.1.106-116.188Upgrade kernel-modules-extraUpgrade bpftoolUpgrade python3-perf-debuginfoUpgrade kernel-toolsUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-libbpfUpgrade kernel-tools-debuginfoUpgrade kernel-libbpf-develUpgrade bpftool-debuginfoUpgrade kernel | Feb 17, 2025 | Aug 17, 2024 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Sep 2, 2024 | Aug 17, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade python3-perfUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernelUpgrade kernel-abi-stablelists | Nov 26, 2024 | Aug 17, 2024 |
| Oracle_linux | — | Upgrade kernel-uek | Nov 21, 2024 | Aug 17, 2024 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | May 15, 2025 | Aug 17, 2024 |
| Suse | — | Upgrade kselftests-kmp-rtUpgrade dlm-kmp-azureUpgrade kernel-64kb-extraUpgrade reiserfs-kmp-defaultUpgrade kernel-docsUpgrade reiserfs-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade dtb-nvidiaUpgrade kernel-rt_debug-livepatch-develUpgrade dlm-kmp-defaultUpgrade kernel-obs-qaUpgrade kernel-azure-vdsoUpgrade kernel-default-base-rebuildUpgrade dlm-kmp-rtUpgrade kernel-rt-develUpgrade kernel-azure-develUpgrade kernel-defaultUpgrade kernel-default-baseUpgrade kernel-syms-rtUpgrade kernel-default-optionalUpgrade dtb-sprdUpgrade ocfs2-kmp-rtUpgrade kernel-64kb-develUpgrade kernel-symsUpgrade kernel-debug-livepatch-develUpgrade kernel-rt_debug-vdsoUpgrade dtb-xilinxUpgrade kselftests-kmp-defaultUpgrade kernel-kvmsmallUpgrade dtb-apmUpgrade dtb-armUpgrade dtb-mediatekUpgrade reiserfs-kmp-rtUpgrade kernel-devel-rtUpgrade dtb-socionextUpgrade kernel-default-livepatch-develUpgrade dtb-rockchipUpgrade kernel-default-extraUpgrade dtb-renesasUpgrade kernel-rt-livepatchUpgrade kernel-rt-livepatch-develUpgrade cluster-md-kmp-64kbUpgrade dtb-qcomUpgrade kernel-macrosUpgrade dtb-amlogicUpgrade kernel-rt-optionalUpgrade kernel-docs-htmlUpgrade dtb-allwinnerUpgrade cluster-md-kmp-azureUpgrade kselftests-kmp-azureUpgrade kernel-default-livepatchUpgrade kernel-debug-vdsoUpgrade gfs2-kmp-64kbUpgrade gfs2-kmp-rtUpgrade dtb-freescaleUpgrade kernel-source-vanillaUpgrade kernel-rt-vdsoUpgrade kernel-default-develUpgrade kernel-azure-optionalUpgrade kernel-azure-livepatch-develUpgrade kernel-azure-extraUpgrade kernel-debugUpgrade dtb-amazonUpgrade kernel-zfcpdumpUpgrade kernel-syms-azureUpgrade kernel-default-vdsoUpgrade kernel-debug-develUpgrade gfs2-kmp-defaultUpgrade kernel-64kb-optionalUpgrade gfs2-kmp-azureUpgrade dtb-broadcomUpgrade dtb-amdUpgrade dlm-kmp-64kbUpgrade dtb-exynosUpgrade ocfs2-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade dtb-caviumUpgrade kselftests-kmp-64kbUpgrade kernel-rt_debugUpgrade kernel-rtUpgrade kernel-azureUpgrade kernel-64kb-livepatch-develUpgrade kernel-sourceUpgrade dtb-marvellUpgrade dtb-hisiliconUpgrade kernel-obs-buildUpgrade reiserfs-kmp-64kbUpgrade dtb-lgUpgrade kernel-rt-extraUpgrade kernel-devel-azureUpgrade dtb-appleUpgrade dtb-alteraUpgrade cluster-md-kmp-rtUpgrade kernel-source-rtUpgrade kernel-source-azureUpgrade kernel-64kbUpgrade kernel-rt_debug-develUpgrade kernel-kvmsmall-vdsoUpgrade ocfs2-kmp-64kbUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-kvmsmall-develUpgrade kernel-devel | Dec 5, 2025 | Jun 3, 2025 |
| Ubuntu | — | Upgrade linux-image-azureUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-1017-ibmUpgrade linux-image-6.8.0-1019-nvidia-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-5.15.0-1071-gcpUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-50-lowlatencyUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-generic-lpaeUpgrade linux-image-5.15.0-1067-nvidia-lowlatencyUpgrade linux-image-5.15.0-1067-nvidiaUpgrade linux-image-gke-5.15Upgrade linux-image-6.8.0-1019-nvidiaUpgrade linux-image-aws-lts-22.04Upgrade linux-image-ibmUpgrade linux-image-oem-22.04bUpgrade linux-image-5.15.0-1072-awsUpgrade linux-image-oem-20.04bUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1020-awsUpgrade linux-image-6.8.0-1020-azure-fdeUpgrade linux-image-5.15.0-1065-raspiUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-5.15.0-1070-oracleUpgrade linux-image-5.15.0-1069-kvmUpgrade linux-image-awsUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-5.15.0-1065-ibmUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-6.8.0-1016-raspiUpgrade linux-image-kvmUpgrade linux-image-ibm-classicUpgrade linux-image-5.15.0-1075-azureUpgrade linux-image-lowlatencyUpgrade linux-image-oem-24.04aUpgrade linux-image-nvidia-64kUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1017-oracle-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-raspiUpgrade linux-image-oem-20.04dUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-50-lowlatency-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-gcpUpgrade linux-image-gkeop-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-50-generic-64kUpgrade linux-image-5.15.0-125-generic-lpaeUpgrade linux-image-lowlatency-64kUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-6.8.0-1020-azureUpgrade linux-image-oem-20.04cUpgrade linux-image-5.15.0-125-genericUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-intelUpgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-intel-iotgUpgrade linux-image-virtualUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1015-gkeUpgrade linux-image-generic-64kUpgrade linux-image-oracleUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-6.8.0-1019-nvidia-lowlatencyUpgrade linux-image-5.15.0-1078-azureUpgrade linux-image-6.8.0-1017-oracleUpgrade linux-image-5.15.0-1055-gkeopUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-50-genericUpgrade linux-image-5.15.0-125-generic-64kUpgrade linux-image-5.15.0-125-lowlatency-64kUpgrade linux-image-5.15.0-1067-intel-iotgUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-gkeopUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1018-oemUpgrade linux-image-genericUpgrade linux-image-gkeop-5.15Upgrade linux-image-6.8.0-1019-gcpUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.15.0-125-lowlatencyUpgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1038-xilinx-zynqmpUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-22.04Upgrade linux-image-5.15.0-1069-gkeUpgrade linux-image-6.8.0-1019-nvidia-lowlatency-64kUpgrade linux-image-gke | Nov 12, 2024 | Aug 17, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Aug 17, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub