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