CVE-2026-53085

bpf: fix mm lifecycle in open-coded task_vma iterator

State
Published
Severity
7.8 High
Published
Jun 24, 2026
Updated
Oct 19, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

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

bpf: fix mm lifecycle in open-coded task_vma iterator

The open-coded task_vma iterator reads task->mm locklessly and acquires mmap_read_trylock() but never calls mmget(). If the task exits concurrently, the mm_struct can be freed as it is not SLAB_TYPESAFE_BY_RCU, resulting in a use-after-free.

Safely read task->mm with a trylock on alloc_lock and acquire an mm reference. Drop the reference via bpf_iter_mmput_async() in _destroy() and error paths. bpf_iter_mmput_async() is a local wrapper around mmput_async() with a fallback to mmput() on !CONFIG_MMU.

Reject irqs-disabled contexts (including NMI) up front. Operations used by _next() and _destroy() (mmap_read_unlock, bpf_iter_mmput_async) take spinlocks with IRQs disabled (pool->lock, pi_lock). Running from NMI or from a tracepoint that fires with those locks held could deadlock.

A trylock on alloc_lock is used instead of the blocking task_lock() (get_task_mm) to avoid a deadlock when a softirq BPF program iterates a task that already holds its alloc_lock on the same CPU.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux
3.16.4 MediumCVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:Hredhat-SADP

Weaknesses

  • CWE-825 Expired Pointer Dereference

Affected Products

ProductVersions
LinuxLinux
  • 4ac4546821584736798aaa9e97da9f6eaf689ea3 to before 239cec25a22662dbd80f57d94b38178c8be95269Affected
  • 4ac4546821584736798aaa9e97da9f6eaf689ea3 to before d0862de7c866c5bd7c32531f66738c21197af888Affected
  • 4ac4546821584736798aaa9e97da9f6eaf689ea3 to before 43683bb280330f3d36f0f2a3932a4867b9603e9cAffected
  • 4ac4546821584736798aaa9e97da9f6eaf689ea3 to before d8e27d2d22b6e2df3a0125b8c08e9aace38c954cAffected
LinuxLinux
  • 6.7Affected
  • before 6.7Not affected
  • 6.12.91 through 6.12.*Not affected
  • 6.18.33 through 6.18.*Not affected
  • 7.0.10 through 7.0.*Not affected
  • 7.1 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.