CVE-2025-21889

perf/core: Add RCU read lock protection to perf_iterate_ctx()

State
Published
Severity
7.8 High
Published
Mar 27, 2025
Updated
Oct 15, 2026
Reserved
Dec 29, 2024

Read the record on cve.org

Description

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 ]

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • bd27568117664b8b3e259721393df420ed51f57b to before f390c2eea571945f357a2d3b9fcb1c015767132eAffected
  • bd27568117664b8b3e259721393df420ed51f57b to before a2475ccad6120546ea45dbcd6cd1f74dc565ef6bAffected
  • bd27568117664b8b3e259721393df420ed51f57b to before dd536566dda9a551fc2a2acfab5313a5bb13ed02Affected
  • bd27568117664b8b3e259721393df420ed51f57b to before 0fe8813baf4b2e865d3b2c735ce1a15b86002c74Affected
LinuxLinux
  • 6.2Affected
  • before 6.2Not affected
  • 6.6.81 through 6.6.*Not affected
  • 6.12.18 through 6.12.*Not affected
  • 6.13.6 through 6.13.*Not affected
  • 6.14 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.