CVE-2024-35895

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
19/05/2024
Last modified:
30/12/2024

Description

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

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (including) 5.4.274 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (including) 5.10.215 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.154 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.85 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.26 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.8.5 (excluding)
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*