CVE-2025-21889: perf/core: Add RCU read lock protection to perf_iterate_ctx()
In the Linux kernel, the following vulnerability has been resolved:
perf/core: Add RCU read lock protection to perf_iterate_ctx()
The perf_iterate_ctx() function performs RCU list traversal but
currently lacks RCU read lock protection. This causes lockdep warnings
when running perf probe with unshare(1) under CONFIG_PROVE_RCU_LIST=y:
WARNING: suspicious RCU usage
kernel/events/core.c:8168 RCU-list traversed in non-reader section!!
Call Trace:
lockdep_rcu_suspicious
? perf_event_addr_filters_apply
perf_iterate_ctx
perf_event_exec
begin_new_exec
? load_elf_phdrs
load_elf_binary
? lock_acquire
? find_held_lock
? bprm_execve
bprm_execve
do_execveat_common.isra.0
__x64_sys_execve
do_syscall_64
entry_SYSCALL_64_after_hwframe
This protection was previously present but was removed in commit
bd2756811766 ("perf: Rewrite core context handling"). Add back the
necessary rcu_read_lock()/rcu_read_unlock() pair around
perf_iterate_ctx() call in perf_event_exec().
[ mingo: Use scoped_guard() as suggested by Peter ]
Security readout for executives and security teams
Plain-English summary
CVE-2025-21889 is a Linux kernel perf subsystem issue where a needed RCU read lock was missing. The public record shows a kernel warning during a specific perf/unshare scenario, but does not describe data theft, privilege escalation, denial of service, or active exploitation.
Executive priority
Treat as a routine kernel hygiene item unless vendor guidance assigns higher severity. There is no sourced evidence of active exploitation or clear business-impacting consequence, but kernel updates should stay on normal patch cycles.
Technical view
perf_iterate_ctx() performs RCU list traversal without RCU read-side protection when called from perf_event_exec(). The fix restores rcu_read_lock()/rcu_read_unlock() coverage, implemented with scoped_guard(), after earlier context-handling changes removed it.
Likely exposure
Exposure is limited to Linux systems running affected kernel versions or branches containing the referenced regression and lacking the stable fixes. Distro package backports may change exposure, so validate against vendor kernel advisories and changelogs.
Exploitation context
The sources only document lockdep warnings under CONFIG_PROVE_RCU_LIST=y when running perf probe with unshare(1). CISA KEV status is false, and no cited source confirms exploitation in the wild.
Researcher notes
Impact evidence is incomplete. The record describes an RCU correctness bug detected by lockdep, not a demonstrated exploit primitive. Focus validation on whether downstream kernels include one of the stable fixes or equivalent backport.
Mitigation direction
Apply vendor kernel updates that include the cited stable fixes.
Check Linux distribution advisories for affected and fixed package versions.
Track upstream stable commits only as supporting evidence, not package status.
Prioritize systems allowing local perf use if vendor guidance raises impact.
Validation and detection
Inventory Linux kernel versions across servers, workstations, and images.
Map installed kernel packages to distro advisories for CVE-2025-21889.
Review kernel changelogs for the perf_event_exec RCU protection fix.
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-21889 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.
0CVSS vectors
3Timeline events
0ADP providers
5Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Mar 27, 2025, 14:57 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.