CVE-2026-93137

CVE-2026-93137

High · published September 17, 2026

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

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

bpf: Fix use-after-free on mm_struct in bpf_find_vma()

bpf_find_vma() reads task->mm and calls mmap_read_trylock(mm) without

holding a reference on the mm. On a foreign task, a concurrent exit_mm()

can free the mm_struct between the lockless read and the trylock,

resulting in a use-after-free. mm_struct is not SLAB_TYPESAFE_BY_RCU.

For the current task, task->mm is stable. For a foreign task, pin the mm

under task->alloc_lock and release it with mmput_async(), mirroring commit

d8e27d2d22b6 ("bpf: fix mm lifecycle in open-coded task_vma iterator").

Use spin_trylock() instead of get_task_mm() so BPF context does not block

on alloc_lock. Reject irqs-disabled contexts and !CONFIG_MMU on the

foreign-task path because dropping the mm reference is not safe there.

Race:

CPU0 (BPF program) CPU1 (exiting task)

============================ ==========================

bpf_find_vma(foreign_task):

mm = task->mm

exit_mm():

task->mm = NULL

mmput(mm) -> frees mm_struct

mmap_read_trylock(mm)

// UAF on mm

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.00160 · 4.7th percentile
Published
2026-09-17T21:18Z
References (6)
EPSS history
Timeline
  • 19 SEP 03:55Z
    EPSS moved — → 0%
    epss
  • 17 SEP 16:11Z
    bpf: Fix use-after-free on mm_struct in bpf_find_vma()
    cvelistv5