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

bpf: Fix NMI/tracepoint re-entry deadlock on lru locks

NMI and tracepoint BPF programs can re-enter the per-CPU or global
LRU lock that bpf_lru_pop_free()/push_free() already hold on the
same CPU, AA-deadlocking. Lockdep reports "inconsistent
{INITIAL USE} -> {IN-NMI}" on &l->lock (syzbot c69a0a2c816716f1e0d5)
and "possible recursive locking detected" on &loc_l->lock (syzbot
18b26edb69b2e19f3b33).

Prior trylock and rqspinlock based fixes (see links) were nacked
because compromised on reliability.

This patch converts every LRU lock site to rqspinlock_t and adds a
recovery path for some failure windows to avoid node leaks.

Failure recovery:

- *_pop_free top-level: return NULL; prealloc_lru_pop() already
treats that as no-free-element (-ENOMEM).

- Cross-CPU steal: skip the victim's locked loc_l, try next CPU.

- Post-steal local lock fail: publish stolen node to lockless
per-CPU free_llist; next pop on this CPU picks it up.

- push_free fail: mark node pending_free=1. __local_list_flush(),
__local_list_pop_pending() reclaim the node from pending_list.
__bpf_lru_list_shrink_inactive() reclaims the node from inactive
list. Nodes from active list are reclaimed by __bpf_lru_list_shrink()
or after __bpf_lru_list_rotate_active() demotes it to the inactive.
Published: 2026-08-15
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel’s BPF subsystem allows NMI and tracepoint programs to re‑enter the per‑CPU or global LRU lock that the bpf_lru_pop_free()/push_free() routine already holds on the same CPU. This re‑entry can trigger a deadlock, leading lockdep to report inconsistent use and recursive locking detected. The deathlock can halt kernel progress, resulting in a system hang or denial of service. The underlying weakness is a locking mechanism failure (CWE‑833).

Affected Systems

The bug affects all Linux kernel releases that include the original bpf LRU lock implementation and have not applied the patch that converts every LRU lock site to rqspinlock_t. Because the CVE does not list specific kernel versions, any unpatched kernel that uses BPF programs with NMI or tracepoint capabilities is vulnerable—particularly systems running custom configurations or older distributions.

Risk and Exploitability

The CVSS score of 5.5 reflects a moderate severity, and the EPSS score of less than 1% indicates a low likelihood of exploitation. An attacker with the ability to load or modify BPF programs can trigger a kernel deadlock. Exploitation requires local privileged access or a privilege escalation that grants BPF loading rights. The CVE is not listed in the CISA KEV catalog, so no widespread active exploitation is reported at this time; the crash mode still represents a serious denial‑of‑service threat. The patch introduces recovery paths to avoid node leaks and eliminates recursive lock acquisition, restoring normal kernel operation.

Generated by OpenCVE AI on August 22, 2026 at 00:10 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the bpf LRU lock patch (e.g., commit 8b0510cc3a4a000d4ed1a56cd96231f3d3ba94c5).
  • If an upgrade is not feasible, disable or restrict NMI and tracepoint BPF programs to prevent re‑entering LRU locks, for example by setting 'kernel.nmi_watchdog=0' or blocking BPF trace points via security modules.
  • Continuously monitor kernel logs for lockdep warning messages such as 'inconsistent {INITIAL USE} -> {IN-NMI}' and verify that the kernel recovers from any lock release failures.

Generated by OpenCVE AI on August 22, 2026 at 00:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 20 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-833
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Sat, 15 Aug 2026 06:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bpf: Fix NMI/tracepoint re-entry deadlock on lru locks NMI and tracepoint BPF programs can re-enter the per-CPU or global LRU lock that bpf_lru_pop_free()/push_free() already hold on the same CPU, AA-deadlocking. Lockdep reports "inconsistent {INITIAL USE} -> {IN-NMI}" on &l->lock (syzbot c69a0a2c816716f1e0d5) and "possible recursive locking detected" on &loc_l->lock (syzbot 18b26edb69b2e19f3b33). Prior trylock and rqspinlock based fixes (see links) were nacked because compromised on reliability. This patch converts every LRU lock site to rqspinlock_t and adds a recovery path for some failure windows to avoid node leaks. Failure recovery: - *_pop_free top-level: return NULL; prealloc_lru_pop() already treats that as no-free-element (-ENOMEM). - Cross-CPU steal: skip the victim's locked loc_l, try next CPU. - Post-steal local lock fail: publish stolen node to lockless per-CPU free_llist; next pop on this CPU picks it up. - push_free fail: mark node pending_free=1. __local_list_flush(), __local_list_pop_pending() reclaim the node from pending_list. __bpf_lru_list_shrink_inactive() reclaims the node from inactive list. Nodes from active list are reclaimed by __bpf_lru_list_shrink() or after __bpf_lru_list_rotate_active() demotes it to the inactive.
Title bpf: Fix NMI/tracepoint re-entry deadlock on lru locks
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-08-17T05:17:29.070Z

Reserved: 2026-08-15T05:44:03.885Z

Link: CVE-2026-74337

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:34.623

Modified: 2026-08-17T06:19:28.157

Link: CVE-2026-74337

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-74337 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T00:15:05Z

Weaknesses