Vulnerability · Published Jul 12, 2024 · Assigned by Linux

CVE-2024-40906net/mlx5: Always stop health timer during driver removal

High 7.8

In plain English

A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 23% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS NVD)7.8High
Exploit odds (30 days)0.3%top 76.6% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: net/mlx5: Always stop health timer during driver removal Currently, if teardown_hca fails to execute during driver removal, mlx5 does not stop the health timer. Afterwards, mlx5 continue with driver teardown. This may lead to a UAF bug, which results in page fault Oops[1], since the health timer invokes after resources were freed. Hence, stop the health monitor even if teardown_hca fails. [1] mlx5_core 0000:18:00.0: E-Switch: Unload vfs: mode(LEGACY), nvfs(0), necvfs(0), active vports(0) mlx5_core 0000:18:00.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0) mlx5_core 0000:18:00.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0) mlx5_core 0000:18:00.0: E-Switch: cleanup mlx5_core 0000:18:00.0: wait_func:1155:(pid 1967079): TEARDOWN_HCA(0x103) timeout. Will cause a leak of a command resource mlx5_core 0000:18:00.0: mlx5_function_close:1288:(pid 1967079): tear_down_hca failed, skip cleanup BUG: unable to handle page fault for address: ffffa26487064230 PGD 100c00067 P4D 100c00067 PUD 100e5a067 PMD 105ed7067 PTE 0 Oops: 0000 [#1] PREEMPT SMP PTI CPU: 0 PID: 0 Comm: swapper/0 Tainted: G OE ------- --- 6.7.0-68.fc38.x86_64 #1 Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0013.121520200651 12/15/2020 RIP: 0010:ioread32be+0x34/0x60 RSP: 0018:ffffa26480003e58 EFLAGS: 00010292 RAX: ffffa26487064200 RBX: ffff9042d08161a0 RCX: ffff904c108222c0 RDX: 000000010bbf1b80 RSI: ffffffffc055ddb0 RDI: ffffa26487064230 RBP: ffff9042d08161a0 R08: 0000000000000022 R09: ffff904c108222e8 R10: 0000000000000004 R11: 0000000000000441 R12: ffffffffc055ddb0 R13: ffffa26487064200 R14: ffffa26480003f00 R15: ffff904c108222c0 FS: 0000000000000000(0000) GS:ffff904c10800000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffa26487064230 CR3: 00000002c4420006 CR4: 00000000007706f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 PKRU: 55555554 Call Trace: <IRQ> ? __die+0x23/0x70 ? page_fault_oops+0x171/0x4e0 ? exc_page_fault+0x175/0x180 ? asm_exc_page_fault+0x26/0x30 ? __pfx_poll_health+0x10/0x10 [mlx5_core] ? __pfx_poll_health+0x10/0x10 [mlx5_core] ? ioread32be+0x34/0x60 mlx5_health_check_fatal_sensors+0x20/0x100 [mlx5_core] ? __pfx_poll_health+0x10/0x10 [mlx5_core] poll_health+0x42/0x230 [mlx5_core] ? __next_timer_interrupt+0xbc/0x110 ? __pfx_poll_health+0x10/0x10 [mlx5_core] call_timer_fn+0x21/0x130 ? __pfx_poll_health+0x10/0x10 [mlx5_core] __run_timers+0x222/0x2c0 run_timer_softirq+0x1d/0x40 __do_softirq+0xc9/0x2c8 __irq_exit_rcu+0xa6/0xc0 sysvec_apic_timer_interrupt+0x72/0x90 </IRQ> <TASK> asm_sysvec_apic_timer_interrupt+0x1a/0x20 RIP: 0010:cpuidle_enter_state+0xcc/0x440 ? cpuidle_enter_state+0xbd/0x440 cpuidle_enter+0x2d/0x40 do_idle+0x20d/0x270 cpu_startup_entry+0x2a/0x30 rest_init+0xd0/0xd0 arch_call_rest_init+0xe/0x30 start_kernel+0x709/0xa90 x86_64_start_reservations+0x18/0x30 x86_64_start_kernel+0x96/0xa0 secondary_startup_64_no_verify+0x18f/0x19b ---[ end trace 0000000000000000 ]---

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
AlmaLinux:8bpftool4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-abi-stablelists4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-core4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-cross-headers4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-debug4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-debug-core4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-debug-devel4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-debug-modules4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-debug-modules-extra4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-devel4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-doc4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-headers4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-modules4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-modules-extra4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-rt4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-rt-core4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-rt-debug4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-rt-debug-core4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-rt-debug-devel4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-rt-debug-modules4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-rt-debug-modules-extra4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-rt-devel4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-rt-modules4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-rt-modules-extra4.18.0-553.53.1.rt7.394.el8_10ALSA-2025:8057
AlmaLinux:8kernel-tools4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-tools-libs4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-tools-libs-devel4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-zfcpdump4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-zfcpdump-core4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-zfcpdump-devel4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-zfcpdump-modules4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8kernel-zfcpdump-modules-extra4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8perf4.18.0-553.53.1.el8_10ALSA-2025:8056
AlmaLinux:8python3-perf4.18.0-553.53.1.el8_10ALSA-2025:8056
Debian:12linux6.1.99-1DSA-5731-1
Debian:12linux6.1.99-1DEBIAN-CVE-2024-40906
Debian:13linux6.9.7-1DEBIAN-CVE-2024-40906
Debian:14linux6.9.7-1DEBIAN-CVE-2024-40906
Rocky Linux:8kernel0:4.18.0-553.53.1.el8_10RLSA-2025:8056
Rocky Linux:8kernel-rt0:4.18.0-553.53.1.rt7.394.el8_10RLSA-2025:8057
Ubuntu:24.04:LTSlinux6.8.0-44.44UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-aws6.8.0-1015.16UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1015.16~22.04.1UBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-azure6.8.0-1014.16UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-azure-6.86.8.0-1014.16~22.04.1UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-gcp6.8.0-1014.16UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1014.16~22.04.1UBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-gke6.8.0-1010.13UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-hwe-6.86.8.0-45.45~22.04.1UBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-ibm6.8.0-1012.12UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-44.44.1UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-44.44.1~22.04.1UBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1013.14UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1013.14~22.04.1UBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1013.14.1UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-oem-6.86.8.0-1012.12UBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-oracle6.8.0-1012.12UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-oracle-6.86.8.0-1012.12~22.04.1UBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-raspi6.8.0-1011.12UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2024-40906
Ubuntu:24.04:LTSlinux-riscv6.8.0-44.44.1UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-riscv-6.86.8.0-44.44.1~22.04.1UBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2024-40906
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2024-40906

Affected products (as reported)

VendorProductVersions
Linux Linux 9b98d395b85dd042fe83fb696b1ac02e6c93a520 – before e7d4485d47839f4d1284592ae242c4e65b2810a99b98d395b85dd042fe83fb696b1ac02e6c93a520 – before 6ccada6ffb42e0ac75e3db06d41baf5a7f483f8a9b98d395b85dd042fe83fb696b1ac02e6c93a520 – before e6777ae0bf6fd5bc626bb051c8c93e3c8198a3f89b98d395b85dd042fe83fb696b1ac02e6c93a520 – before c8b3f38d2dae0397944814d691a419c451f9906f
Linux Linux 6.1

References