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 python-perf-debuginfoUpgrade kernel-toolsUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-5.10.224-212.876Upgrade kernelUpgrade bpftool-debuginfoUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-tools-develUpgrade kernel-headersUpgrade perf-debuginfoUpgrade bpftoolUpgrade kernel-develUpgrade kernel-debuginfoUpgrade kernel-livepatch-5.15.165-110.161Upgrade kernel-tools-debuginfo | Sep 27, 2024 | Aug 17, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-modules-extra-commonUpgrade python3-perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-develUpgrade perf-debuginfoUpgrade kernel-tools-develUpgrade kernel-headersUpgrade perfUpgrade bpftoolUpgrade kernelUpgrade kernel-toolsUpgrade kernel-libbpf-develUpgrade kernel-tools-debuginfoUpgrade kernel-livepatch-6.1.106-116.188Upgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-modules-extraUpgrade kernel-libbpfUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-libbpf-staticUpgrade python3-perf-debuginfo | Feb 17, 2025 | Aug 17, 2024 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Sep 2, 2024 | Aug 17, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade bpftoolUpgrade python3-perfUpgrade kernel-tools | Nov 26, 2024 | Aug 17, 2024 |
| Oracle_linux | — | Upgrade kernel-uek | Nov 21, 2024 | Aug 17, 2024 |
| Redhat_linux | — | Upgrade kernel-rtUpgrade kernelNo solution exists | May 15, 2025 | Aug 17, 2024 |
| Suse | — | Upgrade kernel-source-rtUpgrade kernel-rt-optionalUpgrade dtb-freescaleUpgrade gfs2-kmp-rtUpgrade dtb-allwinnerUpgrade kernel-develUpgrade dtb-broadcomUpgrade kernel-source-vanillaUpgrade kernel-kvmsmall-livepatch-develUpgrade gfs2-kmp-azureUpgrade kernel-64kb-optionalUpgrade kselftests-kmp-azureUpgrade kernel-default-livepatchUpgrade kernel-devel-azureUpgrade reiserfs-kmp-64kbUpgrade kernel-docs-htmlUpgrade cluster-md-kmp-azureUpgrade dtb-hisiliconUpgrade kernel-obs-buildUpgrade kernel-rt_debugUpgrade kernel-source-azureUpgrade kernel-64kbUpgrade dtb-amdUpgrade kernel-debug-vdsoUpgrade kernel-azure-livepatch-develUpgrade kernel-debugUpgrade kernel-default-vdsoUpgrade kernel-debug-develUpgrade ocfs2-kmp-64kbUpgrade kernel-syms-azureUpgrade dtb-amazonUpgrade kernel-azure-extraUpgrade dtb-appleUpgrade kernel-kvmsmall-vdsoUpgrade dtb-caviumUpgrade kernel-rt_debug-develUpgrade dlm-kmp-64kbUpgrade dtb-exynosUpgrade dtb-alteraUpgrade gfs2-kmp-defaultUpgrade cluster-md-kmp-rtUpgrade kernel-azure-optionalUpgrade kernel-default-develUpgrade ocfs2-kmp-azureUpgrade ocfs2-kmp-defaultUpgrade kernel-zfcpdumpUpgrade kernel-rt-vdsoUpgrade kernel-kvmsmall-develUpgrade kernel-rt-extraUpgrade kernel-sourceUpgrade kselftests-kmp-64kbUpgrade dtb-marvellUpgrade kernel-64kb-livepatch-develUpgrade kernel-azureUpgrade kernel-rtUpgrade dtb-lgUpgrade gfs2-kmp-64kbUpgrade kernel-default-base-rebuildUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-rt-livepatch-develUpgrade kernel-syms-rtUpgrade dtb-nvidiaUpgrade dtb-amlogicUpgrade dlm-kmp-rtUpgrade kernel-obs-qaUpgrade kernel-64kb-develUpgrade dlm-kmp-azureUpgrade reiserfs-kmp-defaultUpgrade kernel-docsUpgrade kernel-64kb-extraUpgrade kernel-default-livepatch-develUpgrade kernel-debug-livepatch-develUpgrade kselftests-kmp-rtUpgrade kernel-rt-develUpgrade kernel-macrosUpgrade kernel-azure-develUpgrade dtb-armUpgrade dtb-xilinxUpgrade dtb-sprdUpgrade kselftests-kmp-defaultUpgrade kernel-rt_debug-vdsoUpgrade kernel-devel-rtUpgrade dtb-apmUpgrade kernel-kvmsmallUpgrade reiserfs-kmp-rtUpgrade dtb-socionextUpgrade dlm-kmp-defaultUpgrade kernel-azure-vdsoUpgrade kernel-default-optionalUpgrade dtb-mediatekUpgrade kernel-defaultUpgrade kernel-symsUpgrade kernel-default-baseUpgrade dtb-qcomUpgrade dtb-renesasUpgrade ocfs2-kmp-rtUpgrade kernel-rt-livepatchUpgrade kernel-default-extraUpgrade dtb-rockchipUpgrade cluster-md-kmp-64kbUpgrade reiserfs-kmp-azureUpgrade cluster-md-kmp-default | Dec 5, 2025 | Jun 3, 2025 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1065-raspiUpgrade linux-image-5.15.0-1067-nvidia-lowlatencyUpgrade linux-image-5.15.0-1067-nvidiaUpgrade linux-image-kvmUpgrade linux-image-6.8.0-1016-raspiUpgrade linux-image-5.15.0-1075-azureUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.8.0-1020-awsUpgrade linux-image-5.15.0-1065-ibmUpgrade linux-image-5.15.0-1072-awsUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1020-azure-fdeUpgrade linux-image-oem-20.04bUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1017-oracle-64kUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1019-nvidiaUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-azureUpgrade linux-image-5.15.0-1071-gcpUpgrade linux-image-6.8.0-50-lowlatencyUpgrade linux-image-awsUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-aws-lts-22.04Upgrade linux-image-nvidia-64kUpgrade linux-image-gke-5.15Upgrade linux-image-ibm-classicUpgrade linux-image-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1017-ibmUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-azure-fdeUpgrade linux-image-gkeop-6.8Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-5.15.0-1069-kvmUpgrade linux-image-6.8.0-1019-nvidia-64kUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-nvidiaUpgrade linux-image-oem-22.04aUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-ibmUpgrade linux-image-5.15.0-1070-oracleUpgrade linux-image-oem-20.04dUpgrade linux-image-raspi-nolpaeUpgrade linux-image-gcpUpgrade linux-image-6.8.0-50-lowlatency-64kUpgrade linux-image-oracle-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-5.15.0-125-generic-64kUpgrade linux-image-oracleUpgrade linux-image-oem-22.04cUpgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-50-genericUpgrade linux-image-5.15.0-125-lowlatency-64kUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1017-oracleUpgrade linux-image-5.15.0-125-lowlatencyUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1069-gkeUpgrade linux-image-5.15.0-1078-azureUpgrade linux-image-6.8.0-50-generic-64kUpgrade linux-image-6.8.0-1019-gcpUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-oem-22.04dUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-1038-xilinx-zynqmpUpgrade linux-image-azure-cvmUpgrade linux-image-virtualUpgrade linux-image-oem-20.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1015-gkeUpgrade linux-image-6.8.0-1018-oemUpgrade linux-image-5.15.0-125-genericUpgrade linux-image-nvidia-6.8Upgrade linux-image-genericUpgrade linux-image-gkeUpgrade linux-image-oem-24.04Upgrade linux-image-generic-64kUpgrade linux-image-oem-22.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-5.15.0-125-generic-lpaeUpgrade linux-image-6.8.0-1019-nvidia-lowlatencyUpgrade linux-image-6.8.0-1020-azureUpgrade linux-image-azure-lts-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-1067-intel-iotgUpgrade linux-image-6.8.0-1019-nvidia-lowlatency-64kUpgrade linux-image-intel-iotgUpgrade linux-image-intelUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-gkeopUpgrade linux-image-5.15.0-1055-gkeop | 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