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