CVE-2024-35809 json
PCI/PM: Drain runtime-idle callbacks before driver removal
published 2024-05-17 2 y ago modified 2026-10-15 25 d ago also EUVD-2024-35801
- cvss
- 5.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 9%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- Linux Linux 4.19.312, 5.4.274, 5.10.215, 5.15.154, 6.1.84, 6.6.24, 6.7.12, 6.8.3, 6.9
- Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP V3.1.5
- Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP V3.1.5
- Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP V3.1.5
- linux Debian 12 6.1.85-1
- linux Debian 14, Debian 13 6.7.12-1
debian advisories DEBIAN-CVE-2024-35809
- linux Ubuntu 20.04 LTS 5.4.0-189.209
- linux Ubuntu 22.04 LTS 5.15.0-116.126
- linux Ubuntu 24.04 LTS 6.8.0-35.35
- linux-aws Ubuntu 20.04 LTS 5.4.0-1128.138
- linux-aws Ubuntu 22.04 LTS 5.15.0-1065.71
- linux-aws Ubuntu 24.04 LTS 6.8.0-1009.9
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1132.141
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1064.72
ubuntu advisories UBUNTU-CVE-2024-35809
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel RHEL 9 5.14.0-503.11.1.el9_5
- rv RHEL 9 5.14.0-503.11.1.el9_5
- perf RHEL 9 5.14.0-503.11.1.el9_5
- rtla RHEL 9 5.14.0-503.11.1.el9_5
- bpftool RHEL 9 7.4.0-503.11.1.el9_5
- libperf RHEL 9 5.14.0-503.11.1.el9_5
- kernel-rt RHEL 9 5.14.0-503.11.1.el9_5
- kernel-64k RHEL 9 5.14.0-503.11.1.el9_5
red hat advisories RHSA-2025:3021RHSA-2024:9315RHSA-2024:7000RHSA-2024:7001
- kernel-rt Linux Micro 6.1, Linux Micro 6.0 6.4.0-25.1
- kernel-source-rt Linux Micro 6.1, Linux Micro 6.0 6.4.0-25.1
- kernel-livepatch-MICRO-6-0-RT_Update_5 Linux Micro 6.1, Linux Micro 6.0 1-1.1
- kernel-rt Linux Micro 6.0 6.4.0-9.1
- kernel-source-rt Linux Micro 6.0 6.4.0-9.1
- kernel-source Linux Micro 6.0 6.4.0-18.1
- kernel-default Linux Micro 6.0 6.4.0-18.1
- kernel-kvmsmall Linux Micro 6.0 6.4.0-18.1
suse advisories SUSE-SU-2025:20166-1SUSE-SU-2025:20249-1SUSE-SU-2025:20028-1SUSE-SU-2025:20008-1SUSE-SU-2024:2973-1SUSE-SU-2024:2203-1
- kernel AlmaLinux 8 4.18.0-553.22.1.el8_10
- perf AlmaLinux 8 4.18.0-553.22.1.el8_10
- bpftool AlmaLinux 8 4.18.0-553.22.1.el8_10
- kernel-core AlmaLinux 8 4.18.0-553.22.1.el8_10
- kernel-tools AlmaLinux 8 4.18.0-553.22.1.el8_10
- python3-perf AlmaLinux 8 4.18.0-553.22.1.el8_10
- kernel-modules AlmaLinux 8 4.18.0-553.22.1.el8_10
- kernel-zfcpdump AlmaLinux 8 4.18.0-553.22.1.el8_10
almalinux advisories ALSA-2024:7000ALSA-2024:7001
- kernel Rocky Linux 8 4.18.0-553.22.1.el8_10
- kernel-rt Rocky Linux 8 4.18.0-553.22.1.rt7.363.el8_10
rocky linux advisories RLSA-2024:7000RLSA-2024:7001
- git.kernel.org/stable/c/9a87375bb586515c0af63d5dcdcd58ec4acf20a6 commit
- git.kernel.org/stable/c/47d8aafcfe313511a98f165a54d0adceb34e54b1 commit
- git.kernel.org/stable/c/bbe068b24409ef740657215605284fc7cdddd491 commit
- git.kernel.org/stable/c/7cc94dd36e48879e76ae7a8daea4ff322b7d9674 commit
- git.kernel.org/stable/c/900b81caf00c89417172afe0e7e49ac4eb110f4b commit
- git.kernel.org/stable/c/d86ad8c3e152349454b82f37007ff6ba45f26989 commit
- git.kernel.org/stable/c/d534198311c345e4b062c4b88bb609efb8bd91d5 commit
- git.kernel.org/stable/c/6347348c6aba52dda0b33296684cbb627bdc6970 commit
- git.kernel.org/stable/c/9d5286d4e7f68beab450deddbb6a32edd5ecf4bf commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2024-35809 updated cvss 5.5
kernel: PCI/PM: Drain runtime-idle callbacks before driver removal
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 moreaffected: workaround, no fix planned “Out of support scope”
-
Red Hat CodeReady Linux Builder (v. 9) libperf 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-s390x 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-x86_64 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-aarch64 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-ppc64le 5.14.0-503.11.1.el9_5fixed: vendor fix RHSA-2024:9315
-
Red Hat CodeReady Linux Builder EUS (v.9.4) libperf 5.14.0-427.60.1.el9_4, kernel-debuginfo-common-s390x 5.14.0-427.60.1.el9_4, kernel-debuginfo-common-x86_64 5.14.0-427.60.1.el9_4, kernel-debuginfo-common-aarch64 5.14.0-427.60.1.el9_4, kernel-debuginfo-common-ppc64le 5.14.0-427.60.1.el9_4fixed: vendor fix RHSA-2025:3021
-
Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-503.11.1.el9_5, perf 5.14.0-503.11.1.el9_5, rtla 5.14.0-503.11.1.el9_5, kernel-devel-matched 5.14.0-503.11.1.el9_5, kernel-64k-devel-matched 5.14.0-503.11.1.el9_5, kernel-debug-devel-matched 5.14.0-503.11.1.el9_5, +6 morefixed: vendor fix RHSA-2024:9315
-
Red Hat Enterprise Linux AppStream EUS (v.9.4) rv 5.14.0-427.60.1.el9_4, perf 5.14.0-427.60.1.el9_4, rtla 5.14.0-427.60.1.el9_4, kernel-devel-matched 5.14.0-427.60.1.el9_4, kernel-64k-devel-matched 5.14.0-427.60.1.el9_4, kernel-debug-devel-matched 5.14.0-427.60.1.el9_4, +6 morefixed: vendor fix RHSA-2025:3021
-
Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.22.1.el8_10, kernel 4.18.0-553.22.1.el8_10, bpftool 4.18.0-553.22.1.el8_10, kernel-core 4.18.0-553.22.1.el8_10, kernel-tools 4.18.0-553.22.1.el8_10, python3-perf 4.18.0-553.22.1.el8_10, +15 morefixed: vendor fix RHSA-2024:7000
-
Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.4.0-503.11.1.el9_5, kernel 5.14.0-503.11.1.el9_5, kernel-64k 5.14.0-503.11.1.el9_5, kernel-core 5.14.0-503.11.1.el9_5, kernel-tools 5.14.0-503.11.1.el9_5, python3-perf 5.14.0-503.11.1.el9_5, +29 morefixed: vendor fix RHSA-2024:9315
-
Red Hat Enterprise Linux BaseOS EUS (v.9.4) bpftool 7.3.0-427.60.1.el9_4, kernel 5.14.0-427.60.1.el9_4, kernel-64k 5.14.0-427.60.1.el9_4, kernel-core 5.14.0-427.60.1.el9_4, kernel-tools 5.14.0-427.60.1.el9_4, python3-perf 5.14.0-427.60.1.el9_4, +28 morefixed: vendor fix RHSA-2025:3021
show 9 moreshow fewer
-
Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.22.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.22.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.22.1.el8_10fixed: vendor fix RHSA-2024:7000
-
Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-kvm 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-core 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-modules 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-kvm 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-core 4.18.0-553.22.1.rt7.363.el8_10, +4 morefixed: vendor fix RHSA-2024:7001
-
Red Hat Enterprise Linux Real Time (v. 9) kernel-rt 5.14.0-503.11.1.el9_5, kernel-rt-core 5.14.0-503.11.1.el9_5, kernel-rt-modules 5.14.0-503.11.1.el9_5, kernel-rt-debug-core 5.14.0-503.11.1.el9_5, kernel-rt-modules-core 5.14.0-503.11.1.el9_5, kernel-rt-debug-modules 5.14.0-503.11.1.el9_5, +4 morefixed: vendor fix RHSA-2024:9315
-
Red Hat Enterprise Linux Real Time EUS (v.9.4) kernel-rt 5.14.0-427.60.1.el9_4, kernel-rt-core 5.14.0-427.60.1.el9_4, kernel-rt-modules 5.14.0-427.60.1.el9_4, kernel-rt-debug-core 5.14.0-427.60.1.el9_4, kernel-rt-modules-core 5.14.0-427.60.1.el9_4, kernel-rt-debug-modules 5.14.0-427.60.1.el9_4, +4 morefixed: vendor fix RHSA-2025:3021
-
Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt 5.14.0-503.11.1.el9_5, kernel-rt-kvm 5.14.0-503.11.1.el9_5, kernel-rt-core 5.14.0-503.11.1.el9_5, kernel-rt-modules 5.14.0-503.11.1.el9_5, kernel-rt-debug-kvm 5.14.0-503.11.1.el9_5, kernel-rt-debug-core 5.14.0-503.11.1.el9_5, +6 morefixed: vendor fix RHSA-2024:9315
-
Red Hat Enterprise Linux Real Time for NFV EUS (v.9.4) kernel-rt 5.14.0-427.60.1.el9_4, kernel-rt-kvm 5.14.0-427.60.1.el9_4, kernel-rt-core 5.14.0-427.60.1.el9_4, kernel-rt-modules 5.14.0-427.60.1.el9_4, kernel-rt-debug-kvm 5.14.0-427.60.1.el9_4, kernel-rt-debug-core 5.14.0-427.60.1.el9_4, +6 morefixed: vendor fix RHSA-2025:3021
-
Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-core 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-modules 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-core 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-debug-modules 4.18.0-553.22.1.rt7.363.el8_10, kernel-rt-modules-extra 4.18.0-553.22.1.rt7.363.el8_10, +2 morefixed: vendor fix RHSA-2024:7001
-
Red Hat OpenShift AI 8 rhoai/odh-rhel8-operator v2.13.1-2, rhoai/odh-dashboard-rhel8 v2.13.1-1, rhoai/odh-modelmesh-rhel8 v2.13.1-1, rhoai/odh-operator-bundle v2.13.1-2, rhoai/odh-rhel8-operator v2.14.0-24, rhoai/odh-dashboard-rhel8 v2.14.0-11, +56 morefixed: vendor fix RHBA-2024:8413
-
Red Hat CodeReady Linux Builder (v. 9) kernel-cross-headers 5.14.0-503.11.1.el9_5 Red Hat Enterprise Linux AppStream (v. 9) kernel-headers 5.14.0-503.11.1.el9_5not affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
cisa ICSA-23-348-10 updated cvss 5.5
Siemens SIMATIC S7-1500
-
Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= 3.1.0, < 3.1.5 Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= 3.1.0, < 3.1.5 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= 3.1.0, < 3.1.5 Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AC0) >= 3.1.0, < 3.1.5 Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP (6AG1518-4AX00-4AC0) >= 3.1.0, < 3.1.5affected: fixed in V3.1.5, mitigation support.industry.siemens.com
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.19% chance of exploitation in the next 30 days, higher than 9% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| NVD | 3.1 | 4.7 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H |
| CNA | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
- Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP
- Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP
- Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP
Classification
- Weakness
-
- CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization
- Technology feeds
References
-
git.kernel.org
/stable/c/9a87375bb586515c0af63d5dcdcd58ec4acf20a6
patch
-
git.kernel.org
/stable/c/47d8aafcfe313511a98f165a54d0adceb34e54b1
patch
-
git.kernel.org
/stable/c/bbe068b24409ef740657215605284fc7cdddd491
patch
-
git.kernel.org
/stable/c/7cc94dd36e48879e76ae7a8daea4ff322b7d9674
patch
-
git.kernel.org
/stable/c/900b81caf00c89417172afe0e7e49ac4eb110f4b
patch
-
git.kernel.org
/stable/c/d86ad8c3e152349454b82f37007ff6ba45f26989
patch
-
git.kernel.org
/stable/c/d534198311c345e4b062c4b88bb609efb8bd91d5
patch
-
git.kernel.org
/stable/c/6347348c6aba52dda0b33296684cbb627bdc6970
patch
-
git.kernel.org
/stable/c/9d5286d4e7f68beab450deddbb6a32edd5ecf4bf
patch
-
lists.debian.org
/debian-lts-announce/2024/06/msg00017.html
third-party-advisory
-
lists.debian.org
/debian-lts-announce/2024/06/msg00020.html
third-party-advisory
- cert-portal.siemens.com /productcert/html/ssa-398330.html
Sources
- CVE List CVE-2024-35809
- NVD CVE-2024-35809
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.