CVE-2026-53085CWE-416CWE-825

CVE-2026-53085

High · published June 24, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
6.7
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00175 · 6.7th percentile
Weaknesses
CWE-416 · Use After Free; CWE-825 · Expired Pointer Dereference
Published
2026-06-24T21:17Z
Affected products (3)
ProductVersionsFixed in
linux/linux_kernel≥ 6.7, < 6.12.916.12.91
linux/linux_kernel≥ 6.13, < 6.18.336.18.33
linux/linux_kernel≥ 6.19, < 7.0.107.0.10
References (7)
EPSS history
Timeline
  • 24 JUN 16:30Z
    bpf: fix mm lifecycle in open-coded task_vma iterator
    cvelistv5