CVE-2024-35895

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

State
Published
Severity
Not scored
Published
May 19, 2024
Updated
Oct 15, 2026
Reserved
May 17, 2024

Read the record on cve.org

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 604326b41a6fb9b4a78b6179335decee0365cd8c to before f7990498b05ac41f7d6a190dc0418ef1d21bf058Affected
  • 604326b41a6fb9b4a78b6179335decee0365cd8c to before dd54b48db0c822ae7b520bc80751f0a0a173ef75Affected
  • 604326b41a6fb9b4a78b6179335decee0365cd8c to before d1e73fb19a4c872d7a399ad3c66e8ca30e0875ecAffected
  • 604326b41a6fb9b4a78b6179335decee0365cd8c to before a44770fed86515eedb5a7c00b787f847ebb134a5Affected
  • 604326b41a6fb9b4a78b6179335decee0365cd8c to before 668b3074aa14829e2ac2759799537a93b60fef86Affected
  • 604326b41a6fb9b4a78b6179335decee0365cd8c to before 6af057ccdd8e7619960aca1f0428339f213b31cdAffected
  • 604326b41a6fb9b4a78b6179335decee0365cd8c to before ff91059932401894e6c86341915615c5eb0eca48Affected
LinuxLinux
  • 4.20Affected
  • before 4.20Not affected
  • 5.4.274 through 5.4.*Not affected
  • 5.10.215 through 5.10.*Not affected
  • 5.15.154 through 5.15.*Not affected
  • 6.1.85 through 6.1.*Not affected
  • 6.6.26 through 6.6.*Not affected
  • 6.8.5 through 6.8.*Not affected
  • 6.9 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.