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