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-modules-extraUpgrade kernelUpgrade kernel-toolsUpgrade kernel-rt-debugUpgrade kernel-zfcpdump-modulesUpgrade python3-perfUpgrade kernel-develUpgrade kernel-cross-headersUpgrade kernel-rt-develUpgrade kernel-debug-modulesUpgrade bpftoolUpgrade kernel-tools-libsUpgrade kernel-rt-kvmUpgrade kernel-zfcpdump-coreUpgrade kernel-tools-libs-develUpgrade kernel-rt-debug-coreUpgrade kernel-rtUpgrade kernel-docUpgrade kernel-rt-modulesUpgrade kernel-headersUpgrade kernel-zfcpdump-modules-extraUpgrade perfUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-modulesUpgrade kernel-modulesUpgrade kernel-coreUpgrade kernel-debug-modules-extraUpgrade kernel-debug-develUpgrade kernel-modules-extraUpgrade kernel-rt-coreUpgrade kernel-debug-coreUpgrade kernel-rt-debug-kvmUpgrade kernel-zfcpdump-develUpgrade kernel-abi-stablelistsUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debugUpgrade kernel-rt-debug-devel | Sep 26, 2024 | May 17, 2024 |
| Amazon Linux Ami 2 | — | Upgrade perfUpgrade kernel-headersUpgrade python-perf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-develUpgrade perf-debuginfoUpgrade kernel-debuginfoUpgrade kernel-livepatch-4.14.345-262.561Upgrade python-perfUpgrade kernel-debuginfo-common-aarch64Upgrade bpftoolUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-5.15.156-102.160Upgrade kernelUpgrade kernel-tools-develUpgrade kernel-livepatch-5.10.215-203.850Upgrade kernel-tools | Jun 11, 2024 | May 17, 2024 |
| Amazon_linux_2023 | — | Upgrade perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-livepatch-6.1.84-99.169Upgrade kernel-libbpfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-modules-extraUpgrade kernel-headersUpgrade perfUpgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-libbpf-develUpgrade kernel-libbpf-staticUpgrade python3-perfUpgrade python3-perf-debuginfoUpgrade kernel-develUpgrade kernelUpgrade kernel-tools-develUpgrade kernel-toolsUpgrade kernel-modules-extra-commonUpgrade bpftool | Feb 17, 2025 | May 17, 2024 |
| Debian | — | Upgrade linux | Jun 27, 2024 | May 17, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernelUpgrade kernel-abi-stablelistsUpgrade python3-perfUpgrade kernel-toolsUpgrade kernel-tools-libs | Oct 8, 2024 | May 17, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade bpftoolUpgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernelUpgrade python3-perfUpgrade kernel-abi-stablelists | Oct 8, 2024 | May 17, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade bpftoolUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade python3-perf | Oct 9, 2024 | May 17, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade python3-perfUpgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernel | 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-rt-debuginfoUpgrade kernel-rt-modulesUpgrade perfUpgrade kernel-rt-debug-debuginfoUpgrade kernel-rt-debug-modules-extraUpgrade kernel-develUpgrade python3-perf-debuginfoUpgrade kernel-rt-debug-modulesUpgrade python3-perfUpgrade kernel-tools-libs-develUpgrade kernel-tools-libsUpgrade perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-rt-debugUpgrade kernel-toolsUpgrade kernel-rt-develUpgrade kernel-rtUpgrade bpftoolUpgrade kernel-rt-kvmUpgrade kernel-coreUpgrade kernel-debug-modules-extraUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debugUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-rt-debug-develUpgrade kernel-debuginfoUpgrade kernel-modulesUpgrade kernel-debug-develUpgrade kernel-modules-extraUpgrade kernel-rt-modules-extraUpgrade kernel-debug-modulesUpgrade kernel-rt-debug-coreUpgrade kernel-headersUpgrade kernel-debug-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-rt-debug-kvmUpgrade kernel-debug-coreUpgrade kernel-rt-coreUpgrade kernel-cross-headers | Oct 2, 2024 | May 17, 2024 |
| Suse | — | Upgrade kernel-azureUpgrade ocfs2-kmp-64kbUpgrade kernel-rt-livepatchUpgrade kernel-docsUpgrade kernel-rt-optionalUpgrade kernel-source-vanillaUpgrade dtb-broadcomUpgrade kernel-kvmsmall-vdsoUpgrade reiserfs-kmp-64kbUpgrade dtb-renesasUpgrade kernel-source-rtUpgrade kernel-develUpgrade kernel-defaultUpgrade kernel-rt-extraUpgrade kselftests-kmp-rtUpgrade ocfs2-kmp-azureUpgrade dtb-rockchipUpgrade kernel-rt_debug-develUpgrade kernel-default-base-rebuildUpgrade kernel-rt-vdsoUpgrade reiserfs-kmp-rtUpgrade dtb-caviumUpgrade dlm-kmp-rtUpgrade dtb-allwinnerUpgrade gfs2-kmp-azureUpgrade kernel-docs-htmlUpgrade kernel-obs-buildUpgrade reiserfs-kmp-azureUpgrade dtb-nvidiaUpgrade kernel-azure-optionalUpgrade kernel-rt_debugUpgrade dtb-socionextUpgrade kernel-default-baseUpgrade kernel-default-optionalUpgrade dtb-marvellUpgrade kernel-debug-vdsoUpgrade reiserfs-kmp-defaultUpgrade dtb-sprdUpgrade kselftests-kmp-azureUpgrade cluster-md-kmp-rtUpgrade dtb-alteraUpgrade gfs2-kmp-defaultUpgrade kernel-default-livepatchUpgrade kernel-azure-baseUpgrade cluster-md-kmp-64kbUpgrade kernel-64kb-extraUpgrade kernel-rt_debug-livepatch-develUpgrade ocfs2-kmp-defaultUpgrade kernel-default-livepatch-develUpgrade dlm-kmp-defaultUpgrade kernel-macrosUpgrade dtb-amlogicUpgrade kselftests-kmp-64kbUpgrade dtb-freescaleUpgrade kernel-default-manUpgrade dtb-mediatekUpgrade kernel-rt-livepatch-develUpgrade dtb-xilinxUpgrade kernel-default-develUpgrade gfs2-kmp-rtUpgrade kernel-default-extraUpgrade ocfs2-kmp-rtUpgrade dtb-amdUpgrade kernel-kvmsmallUpgrade kernel-azure-livepatch-develUpgrade kernel-64kbUpgrade dtb-appleUpgrade kernel-source-azureUpgrade kernel-debug-livepatch-develUpgrade dtb-exynosUpgrade kernel-devel-rtUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-azure-extraUpgrade dtb-amazonUpgrade kernel-syms-rtUpgrade kernel-default-vdsoUpgrade kernel-syms-azureUpgrade dtb-armUpgrade dtb-apmUpgrade dtb-hisiliconUpgrade kernel-azure-vdsoUpgrade kernel-devel-azureUpgrade kernel-azure-develUpgrade dtb-qcomUpgrade cluster-md-kmp-defaultUpgrade cluster-md-kmp-azureUpgrade dtb-lgUpgrade kernel-obs-qaUpgrade dlm-kmp-azureUpgrade kernel-rt_debug-vdsoUpgrade gfs2-kmp-64kbUpgrade kernel-kvmsmall-develUpgrade kernel-debug-develUpgrade kernel-sourceUpgrade kernel-rtUpgrade kernel-debugUpgrade kernel-64kb-livepatch-develUpgrade dlm-kmp-64kbUpgrade kselftests-kmp-defaultUpgrade kernel-zfcpdumpUpgrade kernel-symsUpgrade kernel-rt-develUpgrade kernel-64kb-optionalUpgrade kernel-64kb-devel | Jun 12, 2024 | May 17, 2024 |
| Ubuntu | — | Upgrade linux-image-generic-64kUpgrade linux-image-gke-5.15Upgrade linux-image-5.4.0-189-generic-lpaeUpgrade linux-image-raspiUpgrade linux-image-gkeop-5.4Upgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-35-lowlatencyUpgrade linux-image-5.15.0-1062-gkeUpgrade linux-image-5.15.0-1065-awsUpgrade linux-image-5.4.0-1112-raspiUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-azure-fdeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-genericUpgrade linux-image-oem-20.04bUpgrade linux-image-5.15.0-1063-oracleUpgrade linux-image-5.15.0-1062-kvmUpgrade linux-image-ibmUpgrade linux-image-aws-lts-20.04Upgrade linux-image-oracle-lts-20.04Upgrade linux-image-azureUpgrade linux-image-5.4.0-1132-gcpUpgrade linux-image-nvidiaUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-6.8.0-35-generic-64kUpgrade linux-image-6.8.0-1006-oracle-64kUpgrade linux-image-5.4.0-1128-awsUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-116-lowlatencyUpgrade linux-image-5.15.0-1060-nvidiaUpgrade linux-image-kvmUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-5.15.0-1064-gcpUpgrade linux-image-oemUpgrade linux-image-5.15.0-116-generic-lpaeUpgrade linux-image-5.15.0-116-lowlatency-64kUpgrade linux-image-ibm-classicUpgrade linux-image-5.4.0-1095-gkeopUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-6.8.0-1008-gcpUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.4.0-1116-kvmUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-6.8.0-1006-ibmUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-1008-azureUpgrade linux-image-6.8.0-35-genericUpgrade linux-image-oem-20.04cUpgrade linux-image-5.4.0-189-genericUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatencyUpgrade linux-image-gkeopUpgrade linux-image-oem-20.04Upgrade linux-image-gcpUpgrade linux-image-raspi2Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-awsUpgrade linux-image-5.4.0-189-lowlatencyUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-oem-24.04Upgrade linux-image-5.15.0-1060-nvidia-lowlatencyUpgrade linux-image-5.4.0-1088-bluefieldUpgrade linux-image-5.4.0-1047-xilinx-zynqmpUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.4.0-1133-azureUpgrade linux-image-raspi-nolpaeUpgrade linux-image-6.8.0-1004-gkeUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-azure-cvmUpgrade linux-image-virtualUpgrade linux-image-gkeUpgrade linux-image-6.8.0-35-lowlatency-64kUpgrade linux-image-6.8.0-1008-azure-fdeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1006-oemUpgrade linux-image-generic-lpaeUpgrade linux-image-5.15.0-1068-azureUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-5.15.0-1065-gcpUpgrade linux-image-5.15.0-1058-ibmUpgrade linux-image-oem-osp1Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-5.4.0-1040-iotUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1005-raspiUpgrade linux-image-aws-lts-22.04Upgrade linux-image-gcp-lts-20.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.15.0-1048-gkeopUpgrade linux-image-5.15.0-116-generic-64kUpgrade linux-image-5.15.0-1068-azure-fdeUpgrade linux-image-5.4.0-1127-oracleUpgrade linux-image-intelUpgrade linux-image-oem-24.04aUpgrade linux-image-oracleUpgrade linux-image-oracle-64kUpgrade linux-image-oem-20.04dUpgrade linux-image-bluefieldUpgrade linux-image-6.8.0-1009-awsUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-6.8.0-1006-oracleUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.4.0-1075-ibmUpgrade linux-image-5.15.0-1060-intel-iotgUpgrade linux-image-5.15.0-116-genericUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-intel-iotg | 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