CVE-2026-93137

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

State
Published
Severity
7.8 High
Published
Sep 17, 2026
Updated
Oct 19, 2026
Reserved
Sep 17, 2026

Read the record on cve.org

Description

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

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 7c7e3d31e7856a8260a254f8c71db416f7f9f5a1 to before db347840d6b6ee9bb9b8e4a985d4b4419f9f3200Affected
  • 7c7e3d31e7856a8260a254f8c71db416f7f9f5a1 to before 8e1101fc4118019a69c96ced4aec93164f89cbd5Affected
  • 7c7e3d31e7856a8260a254f8c71db416f7f9f5a1 to before c7ad910e987008e125eeff448892e86852173384Affected
  • 7c7e3d31e7856a8260a254f8c71db416f7f9f5a1 to before 86d54cf069fc5ae2e111c87933bebf6eb527978eAffected
  • 7c7e3d31e7856a8260a254f8c71db416f7f9f5a1 to before 2b2a903bee56d312539046d9defa8023eec94760Affected
  • 7c7e3d31e7856a8260a254f8c71db416f7f9f5a1 to before 47b079e2117a2ee52e21f8b72935900c702fc0b5Affected
LinuxLinux
  • 5.17Affected
  • before 5.17Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 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.