CVE-2024-35895

bpf, sockmap: Prevent lock inversion deadlock in map delete elem

MEDIUM
5.5
CVSS Score
Published: May 19, 2024 at 08:34 AM UTC
Updated: October 15, 2026 at 01:17 AM UTC
3 products affected across 3 vendorsLinux KernelDebian LinuxSIMATIC S7-1500 TM MFP

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: bpf, sockmap: Prevent lock inversion deadlock in map delete elem syzkaller started using corpuses where a BPF tracing program deletes elements from a sockmap/sockhash map. Because BPF tracing programs can be invoked from any interrupt context, locks taken during a map_delete_elem operation must be hardirq-safe. Otherwise a deadlock due to lock inversion is possible, as reported by lockdep: CPU0 CPU1 ---- ---- lock(&htab->buckets[i].lock); local_irq_disable(); lock(&host->lock); lock(&htab->buckets[i].lock); <Interrupt> lock(&host->lock); Locks in sockmap are hardirq-unsafe by design. We expects elements to be deleted from sockmap/sockhash only in task (normal) context with interrupts enabled, or in softirq context. Detect when map_delete_elem operation is invoked from a context which is _not_ hardirq-unsafe, that is interrupts are disabled, and bail out with an error. Note that map updates are not affected by this issue. BPF verifier does not allow updating sockmap/sockhash from a BPF tracing program today.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.20 ≤ v < 5.4.2745.11 ≤ v < 5.15.1545.16 ≤ v < 6.1.855.5 ≤ v < 5.10.2156.2 ≤ v < 6.6.266.7 ≤ v < 6.8.56.96.9 rc16.9 rc2604326b41a6fb9b4a78b6179335decee0365cd8c
Vendor states this is fixed in 668b3074aa14829e2ac2759799537a93b60fef86 (fixed)
Vendor states this is fixed in 6af057ccdd8e7619960aca1f0428339f213b31cd (fixed)
Vendor states this is fixed in a44770fed86515eedb5a7c00b787f847ebb134a5 (fixed)
Vendor states this is fixed in d1e73fb19a4c872d7a399ad3c66e8ca30e0875ec (fixed)
Vendor states this is fixed in dd54b48db0c822ae7b520bc80751f0a0a173ef75 (fixed)
Vendor states this is fixed in f7990498b05ac41f7d6a190dc0418ef1d21bf058 (fixed)
Vendor states this is fixed in ff91059932401894e6c86341915615c5eb0eca48 (fixed)
Vendor states this is fixed in 4.20 (unaffected)
Vendor states this is fixed in 5.10.215 (unaffected)
Vendor states this is fixed in 5.15.154 (unaffected)
Vendor states this is fixed in 5.4.274 (unaffected)
Vendor states this is fixed in 6.1.85 (unaffected)
Vendor states this is fixed in 6.6.26 (unaffected)
Vendor states this is fixed in 6.8.5 (unaffected)
Vendor states this is fixed in 6.9 (unaffected)

References (9)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/668b3074aa14829e2ac2759799537a93b60fef86
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/6af057ccdd8e7619960aca1f0428339f213b31cd
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/a44770fed86515eedb5a7c00b787f847ebb134a5
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/d1e73fb19a4c872d7a399ad3c66e8ca30e0875ec
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/dd54b48db0c822ae7b520bc80751f0a0a173ef75
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f7990498b05ac41f7d6a190dc0418ef1d21bf058
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ff91059932401894e6c86341915615c5eb0eca48
Mailing List
Source: af854a3a-2127-422b-91ae-364da2661108
https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-667

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card