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

bpf: Fix mmap_lock leak in irq_work path

stack_map_get_build_id_offset() introduced a per-CPU irq_work to defer
mmap_read_unlock() from NMI context, and bpf_find_vma() later reused the
same mmap_unlock_work. Both callers only check whether the work is busy
before taking mmap_lock, so a nested caller can reuse the slot before the
first caller queues it. Two read locks may then be acquired while only one
deferred unlock runs, leaking a read lock and blocking exit_mmap().

Reserve the per-CPU slot before mmap_read_trylock(). Use the same wrapper
in stackmap and bpf_find_vma() so both callers release the reservation on
trylock failure. Keep rejecting the slot while the irq_work remains busy.
Release it after the irq_work callback unlocks the mm.
Published: 2026-09-17
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The vulnerable kernel code contained a logic flaw in the management of “mmap_lock” around the irq_work mechanism. When a nested caller accesses bpf_find_vma() or stack_map_get_build_id_offset() while an earlier call still has a pending irq_work, the same per‑CPU queue is reused before the first work is queued. This allows two read locks to be held simultaneously, but only one deferred unlock is executed, leaking a read lock and blocking exit_mmap(). The result is a kernel hang that denies service to any process attempting to unmap a memory region. The weakness is an uncontrolled resource consumption flaw, corresponding to CWE‑400.

Affected Systems

All Linux kernel releases that include the buggy bpf, stack_map_get_build_id_offset, or bpf_find_vma code paths are affected. The vendor is Linux:Linux. No explicit version range is provided, so any kernel build prior to the commit that introduces the patch (see the Git references) is potentially vulnerable.

Risk and Exploitability

The EPSS score is less than 1 % and the vulnerability is not listed in CISA’s KEV catalog, indicating a low probability of exploitation. The attack path is not directly disclosed; it is inferred that an attacker would need a kernel or local privileged context capable of loading or executing the affected BPF paths, or otherwise trigger the nested lock reuse. Remote exploitation is unlikely under normal circumstances, so the overall risk remains limited to trusted local users or compromised kernel processes.

Generated by OpenCVE AI on September 20, 2026 at 01:05 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel update that includes commit 051f2da and related patches (e.g., 051f2da, a052ad5, fa9dcac).
  • If a kernel upgrade cannot be performed immediately, restrict or disable the loading of untrusted BPF programs, or disable the BPF subsystem entirely to avoid the vulnerable code paths.
  • Monitor kernel logs and system health for messages indicating blocked mmap_read_unlock, and verify that the lock leak no longer occurs after the update.

Generated by OpenCVE AI on September 20, 2026 at 01:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 20 Sep 2026 01:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-400

Thu, 17 Sep 2026 16:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bpf: Fix mmap_lock leak in irq_work path stack_map_get_build_id_offset() introduced a per-CPU irq_work to defer mmap_read_unlock() from NMI context, and bpf_find_vma() later reused the same mmap_unlock_work. Both callers only check whether the work is busy before taking mmap_lock, so a nested caller can reuse the slot before the first caller queues it. Two read locks may then be acquired while only one deferred unlock runs, leaking a read lock and blocking exit_mmap(). Reserve the per-CPU slot before mmap_read_trylock(). Use the same wrapper in stackmap and bpf_find_vma() so both callers release the reservation on trylock failure. Keep rejecting the slot while the irq_work remains busy. Release it after the irq_work callback unlocks the mm.
Title bpf: Fix mmap_lock leak in irq_work path
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-17T16:07:49.444Z

Reserved: 2026-09-11T19:38:34.795Z

Link: CVE-2026-90247

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-17T17:17:20.803

Modified: 2026-09-17T17:17:20.803

Link: CVE-2026-90247

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-20T01:15:07Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption