Skip to main content
← All vulnerabilities
CVE-2025-38372

RDMA/mlx5: Fix unsafe xarray access in implicit ODP handling

Affects Linux kernels with the mlx5 RDMA driver's implicit ODP code path in listed 6.1, 6.6, 6.12 and 6.13 branches. The facts give no vendor rating. Fixed in 6.12.37 and later.

Published
Last modified
published
Not listed in CISA KEV
Specific setups only
Fix
Fixed in 6.12.37, 6.2, 6.7, 6.14, 6.15.6
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

In the Linux kernel, the following vulnerability has been resolved: RDMA/mlx5: Fix unsafe xarray access in implicit ODP handling __xa_store() and __xa_erase() were used without holding the proper lock, which led to a lockdep warning due to unsafe RCU usage. This patch replaces them with xa_store() and xa_erase(), which perform the necessary locking internally. ============================= WARNING: suspicious RCPU usage 6.14.0-rc7_for_upstream_debug_2025_03_18_15_01 #1 Not tainted ----------------------------- ./include/linux/xarray.h:1211 suspicious rcu_dereference_protected() usage! other info that might help us debug this: rcu_scheduler_active = 2, debug_locks = 1 3 locks held by kworker/u136:0/219: at: process_one_work+0xbe4/0x15f0 process_one_work+0x75c/0x15f0 pagefault_mr+0x9a5/0x1390 [mlx5_ib] stack backtrace: CPU: 14 UID: 0 PID: 219 Comm: kworker/u136:0 Not tainted 6.14.0-rc7_for_upstream_debug_2025_03_18_15_01 #1 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014 Workqueue: mlx5_ib_page_fault mlx5_ib_eqe_pf_action [mlx5_ib] Call Trace: dump_stack_lvl+0xa8/0xc0 lockdep_rcu_suspicious+0x1e6/0x260 xas_create+0xb8a/0xee0 xas_store+0x73/0x14c0 __xa_store+0x13c/0x220 ? xa_store_range+0x390/0x390 ? spin_bug+0x1d0/0x1d0 pagefault_mr+0xcb5/0x1390 [mlx5_ib] ? _raw_spin_unlock+0x1f/0x30 mlx5_ib_eqe_pf_action+0x3be/0x2620 [mlx5_ib] ? lockdep_hardirqs_on_prepare+0x400/0x400 ? mlx5_ib_invalidate_range+0xcb0/0xcb0 [mlx5_ib] process_one_work+0x7db/0x15f0 ? pwq_dec_nr_in_flight+0xda0/0xda0 ? assign_work+0x168/0x240 worker_thread+0x57d/0xcd0 ? rescuer_thread+0xc40/0xc40 kthread+0x3b3/0x800 ? kthread_is_per_cpu+0xb0/0xb0 ? lock_downgrade+0x680/0x680 ? do_raw_spin_lock+0x12d/0x270 ? spin_bug+0x1d0/0x1d0 ? finish_task_switch.isra.0+0x284/0x9e0 ? lockdep_hardirqs_on_prepare+0x284/0x400 ? kthread_is_per_cpu+0xb0/0xb0 ret_from_fork+0x2d/0x70 ? kthread_is_per_cpu+0xb0/0xb0 ret_from_fork_asm+0x11/0x20

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • Linux Linux

    From 6.12.13 · fixed in 6.12.37; From 6.1.191 · fixed in 6.2; From 6.6.160 · fixed in 6.7; From 6.13.2 · fixed in 6.14

  • Linux Linux

    6.14

  • KernelLinux

    fixed in 6.12.37; From 6.13.0 · fixed in 6.15.6

References 3

git.kernel.org

FAQ

Questions about CVE-2025-38372

What does this mean?

The bug is an unsafe access to an xarray, a kernel data structure, in the implicit On-Demand Paging (ODP) handling of the mlx5 RDMA driver. The fix makes that access safe. The facts do not describe the resulting impact.Source: git.kernel.org

Am I affected, and how do I check?

The listed Linux kernel ranges are 6.12.13 up to 6.12.37, 6.1.191 up to 6.2, 6.6.160 up to 6.7, and 6.13.2 up to 6.14, plus kernel 0 up to 6.12.37 and 6.13.0 up to 6.15.6. To check a system, run uname -r for the kernel version and look for the mlx5_ib module with lsmod to see whether the mlx5 RDMA driver is loaded.Source: git.kernel.org

What should I do about it?

Move to a kernel release that includes the fix, such as 6.12.37 or later on the 6.12 line, or 6.15.6 or later on the 6.15 line. The facts list no workaround.Source: git.kernel.org

Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data