In the Linux kernel, the following vulnerability has been resolved:
PCI/PM: Drain runtime-idle callbacks before driver removal
A race condition between the .runtime_idle() callback and the .remove() callback in the rtsx_pcr PCI driver leads to a kernel crash due to an unhandled page fault [1].
The problem is that rtsx_pci_runtime_idle() is not expected to be running after pm_runtime_get_sync() has been called, but the latter doesn't really guarantee that. It only guarantees that the suspend and resume callbacks will not be running when it returns.
However, if a .runtime_idle() callback is already running when pm_runtime_get_sync() is called, the latter will notice that the runtime PM status of the device is RPM_ACTIVE and it will return right away without waiting for the former to complete. In fact, it cannot wait for .runtime_idle() to complete because it may be called from that callback (it arguably does not make much sense to do that, but it is not strictly prohibited).
Thus in general, whoever is providing a .runtime_idle() callback needs to protect it from running in parallel with whatever code runs after pm_runtime_get_sync(). [Note that .runtime_idle() will not start after pm_runtime_get_sync() has returned, but it may continue running then if it has started earlier.]
One way to address that race condition is to call pm_runtime_barrier() after pm_runtime_get_sync() (not before it, because a nonzero value of the runtime PM usage counter is necessary to prevent runtime PM callbacks from being invoked) to wait for the .runtime_idle() callback to complete should it be running at that point. A suitable place for doing that is in pci_device_remove() which calls pm_runtime_get_sync() before removing the driver, so it may as well call pm_runtime_barrier() subsequently, which will prevent the race in question from occurring, not just in the rtsx_pcr driver, but in any PCI drivers providing .runtime_idle() callbacks.
CVSS Details
- CVSS 3.1 Base Score: 4.7
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-rt-debug-kvmUpgrade perfUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-develUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debug-modules-extraUpgrade kernel-rt-debug-modulesUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-modules-extraUpgrade kernel-debug-coreUpgrade kernel-docUpgrade kernel-headersUpgrade kernel-zfcpdumpUpgrade kernel-debugUpgrade kernel-abi-stablelistsUpgrade kernel-rt-modulesUpgrade kernel-modulesUpgrade kernel-debug-develUpgrade kernel-rt-coreUpgrade kernel-coreUpgrade kernel-tools-libs-develUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modulesUpgrade kernel-rt-kvmUpgrade kernel-zfcpdump-coreUpgrade python3-perfUpgrade kernelUpgrade kernel-cross-headersUpgrade kernel-tools-libsUpgrade kernel-rt-develUpgrade kernel-rtUpgrade kernel-develUpgrade kernel-zfcpdump-modulesUpgrade bpftoolUpgrade kernel-rt-debugUpgrade kernel-toolsUpgrade kernel-rt-modules-extra | Sep 26, 2024 | May 17, 2024 |
| Amazon Linux Ami 2 | — | Upgrade bpftoolUpgrade kernel-livepatch-5.10.215-203.850Upgrade kernel-livepatch-5.15.156-102.160Upgrade kernel-tools-develUpgrade kernel-toolsUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-4.14.345-262.561Upgrade python-perf-debuginfoUpgrade kernel-headersUpgrade kernel-debuginfoUpgrade perf-debuginfoUpgrade python-perfUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade perfUpgrade kernel-develUpgrade bpftool-debuginfo | Jun 11, 2024 | May 17, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-livepatch-6.1.84-99.169Upgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade kernel-headersUpgrade perfUpgrade kernel-modules-extraUpgrade perf-debuginfoUpgrade kernel-libbpfUpgrade kernel-develUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-libbpf-staticUpgrade python3-perf-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-libbpf-develUpgrade kernel-modules-extra-commonUpgrade kernel-tools-develUpgrade python3-perfUpgrade kernel | Feb 17, 2025 | May 17, 2024 |
| Debian | — | Upgrade linux | Jun 27, 2024 | May 17, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-toolsUpgrade python3-perfUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernel | Oct 8, 2024 | May 17, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel-toolsUpgrade python3-perfUpgrade kernelUpgrade kernel-abi-stablelists | Oct 8, 2024 | May 17, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernel-toolsUpgrade bpftoolUpgrade python3-perfUpgrade kernel | Oct 9, 2024 | May 17, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libsUpgrade python3-perf | Oct 8, 2024 | May 17, 2024 |
| Oracle_linux | — | Upgrade kernel | Oct 16, 2024 | May 17, 2024 |
| Redhat_linux | — | No solution existsUpgrade kernel-rtUpgrade kernel | Sep 25, 2024 | May 17, 2024 |
| Rocky_linux | — | Upgrade kernel-develUpgrade kernel-rt-develUpgrade kernel-rt-debug-modules-extraUpgrade python3-perfUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernel-tools-libs-develUpgrade kernel-rt-debug-modulesUpgrade perf-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-rt-debugUpgrade kernel-tools-debuginfoUpgrade perfUpgrade bpftoolUpgrade kernel-rt-debuginfoUpgrade kernel-rt-kvmUpgrade kernel-rt-debug-debuginfoUpgrade kernel-rt-modulesUpgrade kernel-rtUpgrade kernel-modulesUpgrade kernel-rt-modules-extraUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debug-modulesUpgrade kernel-debugUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-debug-debuginfoUpgrade kernel-debuginfoUpgrade kernel-rt-coreUpgrade kernel-rt-debug-kvmUpgrade bpftool-debuginfoUpgrade kernel-debug-coreUpgrade kernel-rt-debug-coreUpgrade kernel-headersUpgrade kernel-coreUpgrade kernelUpgrade kernel-debug-modules-extraUpgrade kernel-rt-debug-develUpgrade kernel-debug-develUpgrade kernel-cross-headersUpgrade kernel-modules-extra | Oct 2, 2024 | May 17, 2024 |
| Suse | — | Upgrade dtb-xilinxUpgrade kernel-default-develUpgrade dtb-freescaleUpgrade dtb-amlogicUpgrade kernel-rt-livepatch-develUpgrade kernel-64kb-optionalUpgrade kernel-64kb-develUpgrade gfs2-kmp-rtUpgrade kselftests-kmp-defaultUpgrade dlm-kmp-64kbUpgrade kernel-zfcpdumpUpgrade kernel-debugUpgrade kernel-rt-develUpgrade kernel-symsUpgrade kernel-default-manUpgrade dtb-amdUpgrade kernel-azure-extraUpgrade kernel-debug-livepatch-develUpgrade kernel-devel-rtUpgrade kselftests-kmp-64kbUpgrade dtb-exynosUpgrade kernel-64kb-livepatch-develUpgrade kernel-rtUpgrade ocfs2-kmp-rtUpgrade dtb-mediatekUpgrade kernel-kvmsmall-develUpgrade kernel-rt_debug-vdsoUpgrade kernel-64kbUpgrade kernel-azure-livepatch-develUpgrade dtb-appleUpgrade kernel-kvmsmallUpgrade dtb-qcomUpgrade kernel-devel-azureUpgrade kernel-azure-develUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-macrosUpgrade cluster-md-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade dtb-lgUpgrade kernel-source-azureUpgrade kernel-default-vdsoUpgrade dtb-apmUpgrade kernel-syms-rtUpgrade dtb-hisiliconUpgrade kernel-default-extraUpgrade dtb-amazonUpgrade dtb-armUpgrade kernel-syms-azureUpgrade kernel-sourceUpgrade dlm-kmp-azureUpgrade kernel-debug-develUpgrade kernel-azure-vdsoUpgrade kernel-obs-qaUpgrade gfs2-kmp-64kbUpgrade dlm-kmp-defaultUpgrade dtb-marvellUpgrade dtb-broadcomUpgrade kernel-azure-baseUpgrade cluster-md-kmp-64kbUpgrade ocfs2-kmp-defaultUpgrade kernel-default-optionalUpgrade dtb-socionextUpgrade dtb-rockchipUpgrade kernel-rt_debugUpgrade kernel-default-baseUpgrade kernel-azureUpgrade dtb-allwinnerUpgrade dlm-kmp-rtUpgrade reiserfs-kmp-64kbUpgrade kernel-obs-buildUpgrade ocfs2-kmp-azureUpgrade kernel-source-rtUpgrade kernel-rt-vdsoUpgrade kernel-defaultUpgrade kernel-rt_debug-develUpgrade gfs2-kmp-azureUpgrade dtb-nvidiaUpgrade reiserfs-kmp-azureUpgrade kernel-default-base-rebuildUpgrade dtb-caviumUpgrade kernel-develUpgrade kernel-source-vanillaUpgrade kernel-default-livepatchUpgrade kernel-rt-optionalUpgrade kernel-docs-htmlUpgrade kernel-default-livepatch-develUpgrade kernel-rt-extraUpgrade reiserfs-kmp-rtUpgrade ocfs2-kmp-64kbUpgrade dtb-renesasUpgrade dtb-alteraUpgrade gfs2-kmp-defaultUpgrade kernel-debug-vdsoUpgrade kselftests-kmp-rtUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docsUpgrade kernel-azure-optionalUpgrade reiserfs-kmp-defaultUpgrade kselftests-kmp-azureUpgrade dtb-sprdUpgrade cluster-md-kmp-rtUpgrade kernel-64kb-extraUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-rt-livepatch | Jun 12, 2024 | May 17, 2024 |
| Ubuntu | — | Upgrade linux-image-lowlatencyUpgrade linux-image-generic-64kUpgrade linux-image-gkeop-5.4Upgrade linux-image-oemUpgrade linux-image-5.15.0-1062-gkeUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-ibm-classicUpgrade linux-image-5.4.0-1128-awsUpgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-1060-nvidiaUpgrade linux-image-azureUpgrade linux-image-5.15.0-116-lowlatency-64kUpgrade linux-image-6.8.0-35-genericUpgrade linux-image-gkeopUpgrade linux-image-5.15.0-116-lowlatencyUpgrade linux-image-5.4.0-1116-kvmUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-oracle-lts-20.04Upgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1006-ibmUpgrade linux-image-6.8.0-1008-azureUpgrade linux-image-5.4.0-1112-raspiUpgrade linux-image-genericUpgrade linux-image-azure-lts-22.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-6.8.0-1008-gcpUpgrade linux-image-azure-fdeUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-1062-kvmUpgrade linux-image-5.15.0-116-generic-lpaeUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-gke-5.15Upgrade linux-image-lowlatency-64kUpgrade linux-image-5.4.0-189-generic-lpaeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-ibmUpgrade linux-image-5.15.0-1064-gcpUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1063-oracleUpgrade linux-image-nvidiaUpgrade linux-image-5.4.0-1095-gkeopUpgrade linux-image-6.8.0-35-lowlatencyUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1065-awsUpgrade linux-image-kvmUpgrade linux-image-5.4.0-1132-gcpUpgrade linux-image-6.8.0-35-generic-64kUpgrade linux-image-aws-lts-20.04Upgrade linux-image-6.8.0-1006-oracle-64kUpgrade linux-image-raspiUpgrade linux-image-5.4.0-189-genericUpgrade linux-image-raspi-nolpaeUpgrade linux-image-gcpUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-6.8.0-1009-awsUpgrade linux-image-5.4.0-1088-bluefieldUpgrade linux-image-6.8.0-1006-oemUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-intelUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-oem-24.04aUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.15.0-1060-intel-iotgUpgrade linux-image-5.4.0-1047-xilinx-zynqmpUpgrade linux-image-5.4.0-1075-ibmUpgrade linux-image-bluefieldUpgrade linux-image-5.4.0-1040-iotUpgrade linux-image-6.8.0-1006-oracleUpgrade linux-image-oem-osp1Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-azure-cvmUpgrade linux-image-raspi2Upgrade linux-image-gkeUpgrade linux-image-oem-20.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.15.0-1068-azureUpgrade linux-image-oracleUpgrade linux-image-azure-lts-20.04Upgrade linux-image-oem-24.04Upgrade linux-image-virtualUpgrade linux-image-6.8.0-1004-gkeUpgrade linux-image-5.15.0-1060-nvidia-lowlatencyUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-116-genericUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-1065-gcpUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-intel-iotgUpgrade linux-image-aws-lts-22.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.8.0-1005-raspiUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-5.15.0-116-generic-64kUpgrade linux-image-5.4.0-189-lowlatencyUpgrade linux-image-5.15.0-1048-gkeopUpgrade linux-image-5.4.0-1127-oracleUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-awsUpgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1068-azure-fdeUpgrade linux-image-oem-20.04dUpgrade linux-image-5.15.0-1058-ibmUpgrade linux-image-6.8.0-1008-azure-fdeUpgrade linux-image-5.4.0-1133-azureUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-35-lowlatency-64k | Jul 1, 2024 | May 17, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | May 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