Cloudanix VulnDB

CVE-2026-53084

None

CVSS

—

EPSS

0.2%

Published

Jun 24, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A local user or program with advanced system privileges could make a Linux machine freeze or become unavailable by triggering a kernel locking bug.

Exploitation
Local Privilege
Attacker needs
High Privilege
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This is a Linux kernel denial-of-service flaw in the BPF task_vma iterator. The vulnerable behavior holds a per-VMA lock while a BPF program executes. If the BPF program invokes helpers that acquire locks which depend on mmap_lock, the kernel can enter an unsafe lock ordering cycle involving vm_lock, i_rwsem, mmap_lock, and vm_lock again. The practical result is a kernel deadlock or severe scheduler stall affecting processes that interact with memory mappings, potentially degrading or halting the system. Exploitation generally requires the ability to load and run BPF programs, such as CAP_BPF, CAP_SYS_ADMIN, privileged container escape-adjacent access, or systems where unprivileged BPF is enabled.

Why it matters to the business

Successful exploitation can make affected Linux systems unstable or unavailable, causing service outages, failed workloads, stuck processes, node drains, or full host reboots. The risk is highest on multi-user Linux systems, container hosts, Kubernetes nodes, CI runners, observability platforms, and environments that permit users or agents to load BPF programs. The low EPSS score and absence from the CISA KEV catalog indicate no known broad exploitation at this time, but the issue is still operationally important because it affects kernel availability and may be triggered locally by sufficiently privileged users or compromised software with BPF access.

How an attack unfolds

An attacker first obtains local code execution on an affected Linux host with sufficient permission to load BPF programs or use the relevant BPF iterator functionality. They then craft or run a BPF program using the task_vma iterator and cause the program body to call helpers or execute paths that acquire locks dependent on mmap_lock while the per-VMA lock is still held. This creates an invalid lock ordering chain in the kernel. Once triggered, kernel threads or user processes can become blocked waiting on locks that cannot be released in the expected order. Depending on workload and kernel configuration, this may appear as hung tasks, soft lockups, stalled memory-management operations, degraded performance, or a complete denial of service requiring administrative intervention or reboot. The upstream fix changes the iterator behavior by taking a snapshot of the VMA under the per-VMA lock, dropping the lock before returning control to the BPF program, and reference-counting trusted file pointers safely.

How to fix it

Upgrade affected Linux kernels to a vendor-supported version that includes the upstream fix for the BPF task_vma iterator VMA snapshot behavior. Because no specific affected products or fixed package versions were provided, use the fixed kernel versions published by the relevant Linux distribution, appliance vendor, cloud image provider, or kernel maintainer. Where immediate patching is not possible, reduce exposure by disabling unprivileged BPF where supported, restricting CAP_BPF and CAP_SYS_ADMIN, avoiding privileged containers, limiting access to bpffs and BPF-loading tooling, and ensuring only trusted observability or security agents can load BPF programs. Reboot into the patched kernel after installation; installing kernel packages alone is not sufficient if the running kernel remains vulnerable.

How to confirm the fix worked

Confirm remediation by verifying that the running kernel, not just the installed package, is a vendor-patched build containing the fix. Check the active kernel with uname -r and compare it to the distribution advisory or fixed package metadata. Validate that hosts have been rebooted after patching. Confirm unprivileged BPF posture with sysctl kernel.unprivileged_bpf_disabled where applicable, and review whether CAP_BPF, CAP_SYS_ADMIN, privileged containers, or BPF-loading service accounts are still broadly available. If source-based validation is possible, confirm the kernel contains the task_vma iterator change that snapshots the VMA under the per-VMA lock and drops the lock before BPF program execution. Operational validation should include monitoring for absence of new hung-task, soft-lockup, lockdep, or BPF-related kernel messages after patching.

Typical attack path

  1. Gain local execution on a vulnerable Linux system.
  2. Obtain the ability to load or execute BPF programs, for example through CAP_BPF, CAP_SYS_ADMIN, privileged container permissions, or enabled unprivileged BPF.
  3. Load a BPF program that uses the task_vma iterator.
  4. Trigger iterator execution in a way that causes the BPF program body or helpers to acquire locks dependent on mmap_lock.
  5. Cause the kernel to encounter the vm_lock -> i_rwsem -> mmap_lock -> vm_lock lock-ordering cycle.
  6. Observe or induce service disruption through hung tasks, soft lockups, blocked memory-management operations, or host unavailability.

How to detect it

Detection should focus on evidence of attempted BPF program loading followed by kernel lockup symptoms. Review kernel logs from journald, dmesg, /var/log/kern.log, /var/log/messages, and centralized syslog for BPF activity near hung-task, soft-lockup, RCU stall, lockdep, mmap_lock, i_rwsem, vm_lock, or task_vma messages. Review audit logs for bpf system calls, use of bpftool, privileged container starts, CAP_BPF or CAP_SYS_ADMIN assignment, and unexpected eBPF agent activity. In containerized environments, review Kubernetes audit logs and runtime logs for privileged pods, hostPID or hostNetwork workloads, mounted bpffs, or containers granted BPF-related capabilities. For forensic triage, correlate the first kernel stall message with recent process execution telemetry showing bpftool, custom loaders, tracing frameworks, or newly started observability/security agents. There are no known public exploit-specific filenames or network indicators from the provided data; indicators are behavioral and log-based.

  • task_vma
  • bpf:
  • BPF
  • bpftool
  • bpf()
  • CAP_BPF
  • CAP_SYS_ADMIN
  • kernel.unprivileged_bpf_disabled
  • BUG: soft lockup
  • INFO: task
  • blocked for more than
  • hung_task
  • RCU Stall
  • rcu_sched self-detected stall
  • possible circular locking dependency detected
  • lockdep
  • mmap_lock
  • i_rwsem
  • vm_lock
  • lock_vma_under_rcu
  • /sys/fs/bpf
  • /proc/sys/kernel/unprivileged_bpf_disabled

What your security team should do

  • Prioritize patching Linux systems where untrusted users, containers, CI jobs, or third-party agents can load BPF programs.
  • Inventory hosts running workloads that use eBPF-based observability, networking, tracing, or security agents and validate they are on patched kernels.
  • Disable unprivileged BPF unless there is a documented business requirement for it.
  • Restrict CAP_BPF, CAP_SYS_ADMIN, privileged containers, and access to BPF-loading tools to explicitly trusted administrators and services.
  • Review container runtime and Kubernetes security policies to prevent unnecessary privileged pods and excessive Linux capabilities.
  • Add monitoring for kernel hung-task, soft-lockup, lockdep, and BPF verifier/load events to detect attempted triggering or instability.
  • Establish a reboot plan for patched kernel rollout, because the vulnerable code remains active until the system boots into the fixed kernel.
  • Track vendor advisories for exact fixed versions, since downstream distributions may backport the fix without changing to a visibly newer upstream kernel version.

The record

In the Linux kernel, the following vulnerability has been resolved: bpf: return VMA snapshot from task_vma iterator Holding the per-VMA lock across the BPF program body creates a lock ordering problem when helpers acquire locks that depend on mmap_lock: vm_lock -> i_rwsem -> mmap_lock -> vm_lock Snapshot the VMA under the per-VMA lock in _next() via memcpy(), then drop the lock before returning. The BPF program accesses only the snapshot. The verifier only trusts vm_mm and vm_file pointers (see BTF_TYPE_SAFE_TRUSTED_OR_NULL in verifier.c). vm_file is reference- counted with get_file() under the lock and released via fput() on the next iteration or in _destroy(). vm_mm is already correct because lock_vma_under_rcu() verifies vma->vm_mm == mm. All other pointers are left as-is by memcpy() since the verifier treats them as untrusted.

Affected packages

Ecosystem Package Introduced Fixed