CVE-2025-38372: RDMA/mlx5: Fix unsafe xarray access in implicit ODP handling
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
Security readout for executives and security teams
Plain-English summary
A locking error in the Linux kernel’s Mellanox mlx5 RDMA driver could allow unsafe memory handling during implicit on-demand paging. The supplied CVSS assessment indicates a locally authenticated, low-privilege user may compromise confidentiality, integrity, or availability. Exposure depends on the affected kernel code and mlx5 RDMA functionality being present and used.
Executive priority
Treat this as a high-priority maintenance issue for RDMA-enabled, shared Linux infrastructure. Expedite vendor-supported updates where mlx5 implicit ODP is used. Other Linux systems warrant inventory and confirmation, but the sources do not justify emergency incident response without additional evidence of exploitation or relevant exposure.
Technical view
The mlx5_ib implicit ODP page-fault path called __xa_store() and __xa_erase() without the required xarray lock, causing unsafe RCU access. The kernel fix substitutes xa_store() and xa_erase(), which acquire necessary locking internally. The supplied CVSS 3.1 score is 7.8 with local, low-complexity, low-privilege access and no user interaction.
Likely exposure
Prioritize Linux systems using Mellanox mlx5 RDMA and implicit ODP, especially multi-user compute, virtualization, AI, or HPC infrastructure. The supplied affected-version data is internally difficult to interpret, so kernel version alone should not determine exposure; confirm whether the relevant fix commit is included in each vendor kernel.
Exploitation context
The bundle reports no CISA KEV listing and provides no evidence of active exploitation or a public exploit. Its CVSS vector describes local exploitation requiring low privileges, not unauthenticated remote compromise. The supplied evidence demonstrates a lockdep warning and unsafe synchronization but does not document a proven real-world impact chain.
Researcher notes
The defect is a synchronization failure involving xarray mutation and RCU protection in pagefault_mr(). The corrective pattern is explicit in the record, but no CWE, crash proof, corruption trace, or exploitation analysis is supplied. Researchers should distinguish the demonstrated lockdep violation from the CVSS-assessed impact and validate affected vendor backports carefully.
Mitigation direction
Apply a vendor-supported kernel update containing the xarray locking correction.
Confirm fix inclusion using vendor advisories or the referenced stable-kernel commits.
Prioritize exposed multi-user systems that actively use mlx5 RDMA and implicit ODP.
If immediate patching is unavailable, consult vendor guidance for supported feature-restriction options.
Validation and detection
Record kernel package versions and vendor build identifiers across potentially exposed systems.
Determine whether mlx5_ib is present and RDMA workloads use implicit ODP.
Verify the deployed kernel contains the referenced locking fix, including vendor backports.
Review kernel logs for mlx5_ib page-fault warnings or suspicious RCU diagnostics.
Recheck vendor status because the supplied affected-version ranges appear inconsistent.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-38372 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
4Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.