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