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