CVE-2025-21876

CVE-2025-21876

High · published March 27, 2025

CVSS v3.1
8.8
EPSS
0%
Percentile
11.4
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

iommu/vt-d: Fix suspicious RCU usage

Commit <d74169ceb0d2> ("iommu/vt-d: Allocate DMAR fault interrupts

locally") moved the call to enable_drhd_fault_handling() to a code

path that does not hold any lock while traversing the drhd list. Fix

it by ensuring the dmar_global_lock lock is held when traversing the

drhd list.

Without this fix, the following warning is triggered:

=============================

WARNING: suspicious RCU usage

6.14.0-rc3 #55 Not tainted

-----------------------------

drivers/iommu/intel/dmar.c:2046 RCU-list traversed in non-reader section!!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 1

2 locks held by cpuhp/1/23:

#0: ffffffff84a67c50 (cpu_hotplug_lock){++++}-{0:0}, at: cpuhp_thread_fun+0x87/0x2c0

#1: ffffffff84a6a380 (cpuhp_state-up){+.+.}-{0:0}, at: cpuhp_thread_fun+0x87/0x2c0

stack backtrace:

CPU: 1 UID: 0 PID: 23 Comm: cpuhp/1 Not tainted 6.14.0-rc3 #55

Call Trace:

<TASK>

dump_stack_lvl+0xb7/0xd0

lockdep_rcu_suspicious+0x159/0x1f0

? __pfx_enable_drhd_fault_handling+0x10/0x10

enable_drhd_fault_handling+0x151/0x180

cpuhp_invoke_callback+0x1df/0x990

cpuhp_thread_fun+0x1ea/0x2c0

smpboot_thread_fn+0x1f5/0x2e0

? __pfx_smpboot_thread_fn+0x10/0x10

kthread+0x12a/0x2d0

? __pfx_kthread+0x10/0x10

ret_from_fork+0x4a/0x60

? __pfx_kthread+0x10/0x10

ret_from_fork_asm+0x1a/0x30

</TASK>

Holding the lock in enable_drhd_fault_handling() triggers a lockdep splat

about a possible deadlock between dmar_global_lock and cpu_hotplug_lock.

This is avoided by not holding dmar_global_lock when calling

iommu_device_register(), which initiates the device probe process.

The record
Technical detail
CVSS v3.1
8.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00216 · 11.4th percentile
Published
2025-03-27T19:15Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 6.10, < 6.12.186.12.18
linux/linux_kernel≥ 6.13, < 6.13.66.13.6
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (3)
EPSS history
Timeline
  • 27 MAR 14:57Z
    iommu/vt-d: Fix suspicious RCU usage
    cvelistv5