CVE-2025-21889 perf/core: Add RCU read lock protection to perf_iterate_ctx()
Missing RCU read lock in perf_iterate_ctx can cause lockdep warnings and potential instability during process execution.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2025-21889?
CVE-2025-21889 is a high-severity vulnerability in Linux kernel, published on 27 Mar 2025. It can only be exploited from the same machine or local network, with no action from the victim.
Official 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 ]
Which versions are affected by CVE-2025-21889?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2025-21889?
Apply the vendor's patch.
Is CVE-2025-21889 being exploited?
There is no known exploitation of CVE-2025-21889 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as BELL-CVE-2025-21889, DEBIAN-CVE-2025-21889, GHSA-mcf6-fpvv-xxr4, ROOT-OS-UBUNTU-2404-CVE-2025-21889, UBUNTU-CVE-2025-21889.