---
id: CVE-2025-21889
title: |-
  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.…
summary: |-
  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.…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 6.2, < 6.6.81'
  - 'linux_kernel >= 6.7, < 6.12.18'
  - 'linux_kernel >= 6.13, < 6.13.6'
  - linux_kernel = 6.14
patched:
  - linux_kernel 6.13.6
published: '2025-03-27'
updated: '2026-07-30'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-21889'
references:
  - url: 'https://git.kernel.org/stable/c/0fe8813baf4b2e865d3b2c735ce1a15b86002c74'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/a2475ccad6120546ea45dbcd6cd1f74dc565ef6b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/dd536566dda9a551fc2a2acfab5313a5bb13ed02'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/f390c2eea571945f357a2d3b9fcb1c015767132e'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-21889.json
  - url: 'https://access.redhat.com/security/cve/CVE-2025-21889'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2355402'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2025-21889'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2025-21889'
  - url: >-
      https://lore.kernel.org/linux-cve-announce/2025032714-CVE-2025-21889-0913@gregkh/T
tags:
  - nvd
  - csaf
  - vex
  - red-hat
  - score-dispute
epss: 0.00201
epssPercentile: 0.08779
ingestedAt: '2026-07-30T06:53:10.755Z'
cwe:
  - CWE-413
scores:
  nvd: 7.8
  vendor: 3.3
---

## Overview

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 ]

## Affected

- `linux_kernel >= 6.2, < 6.6.81`
- `linux_kernel >= 6.7, < 6.12.18`
- `linux_kernel >= 6.13, < 6.13.6`
- `linux_kernel = 6.14`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.13.6`

## Vendor advisories

- **Red Hat VEX** · Low · affected: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 9 · no fix planned: Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 9 · updated 2026-09-13 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-21889.json)
