Read the docs
TI-2024-23676 Aliases CVE-2024-35809GHSA-3r3f-7rrr-c2h9

PCI/PM: Drain runtime-idle callbacks before driver removal

Priority LOW 24CWE-362Published · Updated

Key facts

Attack vector
Local
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
None · None · High
Fix status
Partial Red Hat: 16 fixed, 2 without a fix

Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA and Red Hat.

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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00195 9th percentileScored 2026-11-07
Fix Partial Linux (Linux): 4.19.312, 5.4.274, 5.10.215 +6Red Hat: 4 advisoriesRed Hat: 16 fixed, 2 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
LinuxLinux2.6.36 and later4.19.312, 5.4.274, 5.10.215, 5.15.154, 6.1.84, 6.6.24, 6.7.12, 6.8.3, 6.9Patch availableCNA
  • Linux VendorLinux Affected 2.6.36 and later Fixed in 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 Patch available CNA

CPE configurations NVD · 2

CPEVersionsRoleVendor
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*10.0VulnerableDebian
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*before 4.19.312; 4.20 to before 5.4.274; 5.5 to before 5.10.215; 5.11 to before 5.15.154; 5.16 to before 6.1.84; 6.2 to before 6.6.24; 6.7 to before 6.7.12; 6.8 to before 6.8.3VulnerableLinux
  • cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* Versions 10.0 Vulnerable ·Debian
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* Versions before 4.19.312; 4.20 to before 5.4.274; 5.5 to before 5.10.215; 5.11 to before 5.15.154; 5.16 to before 6.1.84; 6.2 to before 6.6.24; 6.7 to before 6.7.12; 6.8 to before 6.8.3 Vulnerable ·Linux

Remediation

  • Fix · CNA Linux (Linux) Fixed in 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

Red Hat 4 advisories

  • RHSA-2025:3021 Released 2025-03-19 · Red Hat rating Moderate
    kernel security update
    • Red Hat CodeReady Linux Builder EUS (v.9.4) kernel-tools-libs-devel-5.14.0-427.60.1.el9_4, libperf-5.14.0-427.60.1.el9_4
    • Red Hat Enterprise Linux AppStream EUS (v.9.4) kernel-64k-debug-devel-5.14.0-427.60.1.el9_4, kernel-64k-debug-devel-matched-5.14.0-427.60.1.el9_4, kernel-64k-devel-5.14.0-427.60.1.el9_4 +11
    • 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 +29
    • 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-debug-5.14.0-427.60.1.el9_4 +9
    • Red Hat Enterprise Linux Real Time for NFV 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-debug-5.14.0-427.60.1.el9_4 +11
  • RHSA-2024:9315 Released 2024-11-12 · Red Hat rating Moderate
    kernel security update
    • Red Hat CodeReady Linux Builder (v. 9) kernel-cross-headers-5.14.0-503.11.1.el9_5, kernel-tools-libs-devel-5.14.0-503.11.1.el9_5, libperf-5.14.0-503.11.1.el9_5
    • Red Hat Enterprise Linux AppStream (v. 9) kernel-64k-debug-devel-5.14.0-503.11.1.el9_5, kernel-64k-debug-devel-matched-5.14.0-503.11.1.el9_5, kernel-64k-devel-5.14.0-503.11.1.el9_5 +12
    • 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 +30
    • 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-debug-5.14.0-503.11.1.el9_5 +9
    • Red Hat Enterprise Linux Real Time for NFV (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-debug-5.14.0-503.11.1.el9_5 +11
  • RHSA-2024:7000 Released 2024-09-24 · Red Hat rating Important
    kernel security update
    • Red Hat Enterprise Linux BaseOS (v. 8) bpftool-4.18.0-553.22.1.el8_10, kernel-4.18.0-553.22.1.el8_10, kernel-abi-stablelists-4.18.0-553.22.1.el8_10 +19
    • Red Hat Enterprise Linux CRB (v. 8) kernel-tools-libs-devel-4.18.0-553.22.1.el8_10
Show 1 more Red Hat advisories
  • RHSA-2024:7001 Released 2024-09-24 · Red Hat rating Important
    kernel-rt security update
    • Red Hat Enterprise Linux NFV (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-debug-4.18.0-553.22.1.rt7.363.el8_10 +9
    • 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-debug-4.18.0-553.22.1.rt7.363.el8_10 +7

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Red Hat Enterprise Linux 6AffectedNo fix planned: Out of support scope
Red Hat Enterprise Linux 7AffectedNo fix planned: Out of support scope
RHOAI-2.13-RHEL-8Fixed—
RHOAI-2.14-RHEL-8Fixed—
Red Hat CodeReady Linux Builder (v. 9)Fixed RHSA-2024:9315
Red Hat CodeReady Linux Builder EUS (v.9.4)Fixed RHSA-2025:3021
Red Hat Enterprise Linux AppStream (v. 9)Fixed RHSA-2024:9315
Red Hat Enterprise Linux AppStream EUS (v.9.4)Fixed RHSA-2025:3021
Red Hat Enterprise Linux BaseOS (v. 8)Fixed RHSA-2024:7000
Red Hat Enterprise Linux BaseOS (v. 9)Fixed RHSA-2024:9315
Red Hat Enterprise Linux BaseOS EUS (v.9.4)Fixed RHSA-2025:3021
Red Hat Enterprise Linux CRB (v. 8)Fixed RHSA-2024:7000
Red Hat Enterprise Linux NFV (v. 8)Fixed RHSA-2024:7001
Red Hat Enterprise Linux RT (v. 8)Fixed RHSA-2024:7001
Red Hat Enterprise Linux Real Time (v. 9)Fixed RHSA-2024:9315
Red Hat Enterprise Linux Real Time EUS (v.9.4)Fixed RHSA-2025:3021
Red Hat Enterprise Linux Real Time for NFV (v. 9)Fixed RHSA-2024:9315
Red Hat Enterprise Linux Real Time for NFV EUS (v.9.4)Fixed RHSA-2025:3021
Not affected: 2 products
  • Red Hat CodeReady Linux Builder (v. 9)
  • Red Hat Enterprise Linux AppStream (v. 9)

Timeline

  1. 2026-10-02 Threatist record created from CVE-2024-35809
  2. 2026-10-03 Alias added: GHSA-3r3f-7rrr-c2h9
  3. 2026-10-29 Affected versions changed · Red Hat
  4. 2026-10-30 Fix available: RHOAI-2.13-RHEL-8, RHOAI-2.14-RHEL-8 · Red Hat

References

  • TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
  • TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
  • TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
  • TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
  • TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
  • TI-2021-05514 Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACE KEVCVSS 3.1HIGH 8.3
See all 15278 →

Sources