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