CVE-2026-74337

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

State
Published
Severity
Not scored
Published
Aug 15, 2026
Updated
Aug 17, 2026
Reserved
Aug 15, 2026

Read the record on cve.org

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 3a08c2fd763450a927d1130de078d6f9e74944fb to before 8b0510cc3a4a000d4ed1a56cd96231f3d3ba94c5Affected
  • 3a08c2fd763450a927d1130de078d6f9e74944fb to before 440a2fdbb40608d55a7b11f2be53592a3785131dAffected
  • 3a08c2fd763450a927d1130de078d6f9e74944fb to before 89edbdfc5d0308cef57b71359331de5c4ddbf763Affected
LinuxLinux
  • 4.10Affected
  • before 4.10Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 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.