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