Skip to main content

Linux Kernel CVE-2026-53085

| EUVDEUVD-2026-38953 HIGH
Expired Pointer Dereference (CWE-825)
2026-06-24 Linux GHSA-44fh-c439-xq8f
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

Local BPF-capable attacker (AV:L/PR:L); a concurrent task-exit race raises complexity to AC:H; UAF yields high C/I/A within the kernel (S:U).

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
7.0 HIGH
AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat
6.4 MEDIUM
qualitative

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Jun 28, 2026 - 09:07 vuln.today
CVSS changed
Jun 28, 2026 - 08:22 NVD
7.8 (HIGH)
Patch available
Jun 24, 2026 - 18:02 EUVD
CVE Published
Jun 24, 2026 - 16:30 cve.org
UNKNOWN (no severity yet)
CVE Published
Jun 24, 2026 - 16:30 cve.org
HIGH 7.8

DescriptionCVE.org

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.

AnalysisAI

Local privilege escalation and memory corruption in the Linux kernel BPF subsystem arises from a use-after-free in the open-coded task_vma iterator, which read task->mm locklessly and took mmap_read_trylock() without ever calling mmget(). On kernels where a concurrent task exit frees the mm_struct (not protected by SLAB_TYPESAFE_BY_RCU), a BPF program iterating that task's VMAs can access freed memory, enabling information disclosure or kernel control-flow corruption. The fix has been merged upstream; there is no public exploit identified at time of analysis, EPSS is low (0.16%, 5th percentile), and it is not listed in CISA KEV.

Technical ContextAI

The flaw lives in the eBPF task_vma open-coded iterator (bpf_iter_task_vma_*), used by BPF programs to walk a task's memory mappings (struct vm_area_struct) via its mm_struct. Correct kernel idiom requires pinning an mm with mmget()/get_task_mm() before traversal, but the iterator only performed mmap_read_trylock(), leaving a window where a concurrently exiting task could free mm_struct. Because mm_struct is not allocated with SLAB_TYPESAFE_BY_RCU, the freed object can be reused, making the dangling reference a classic use-after-free (CWE-416), even though the CVE feed lists CWE as N/A. The remediation reads task->mm under a trylock on alloc_lock (rather than the blocking task_lock()/get_task_mm path, which would deadlock if a softirq BPF program iterates a task holding its own alloc_lock on the same CPU), takes a proper mm reference, and releases it via a bpf_iter_mmput_async() wrapper in the _destroy() and error paths. It also rejects IRQs-disabled and NMI contexts up front, since mmap_read_unlock and mmput_async take spinlocks (pool->lock, pi_lock) that could deadlock from NMI or a tracepoint firing with those locks held.

RemediationAI

Vendor-released patch: upgrade to a fixed Linux kernel build - 6.12.91, 6.18.33, 7.0.10, or mainline 7.1 (or your distribution's backport carrying stable commits 239cec25a2, d0862de7c8, 43683bb280, or d8e27d2d22 from https://git.kernel.org/stable/c/239cec25a22662dbd80f57d94b38178c8be95269 and the related stable links). Until a patched kernel is deployed, the most effective compensating control is to restrict BPF usage: set kernel.unprivileged_bpf_disabled=1 (sysctl) to block unprivileged BPF loading, and avoid granting CAP_BPF/CAP_SYS_ADMIN to untrusted workloads or containers - the trade-off is that legitimate observability/tracing tooling (e.g. bpftrace, BCC, certain agents) relying on task_vma iteration will lose functionality. Reboot is required to activate the new kernel; live patching is generally not available for this class of iterator change. Confirm exact fixed versions against your distribution's advisory before scheduling.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-53085 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy