CVE-2026-98384: bpf: Fix out-of-bounds read of sk_protocol in bpf_sock_destroy()
bpf: Fix out-of-bounds read of skprotocol in bpfsockdestroy()
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.6.158.1-1 - Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1 - Upgrade
Upgrade
debian/linux-6.12to a version that resolves this vulnerability.Fixed in 6.12.113-1~deb12u1 - Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Linux kernel systems that run BPF TCP iterators and pass TIME_WAIT or NEW_SYN_RECV/request sockets through bpf_sock_destroy() are affected. The reported failure occurs when the TCP iterator handles a time-wait socket.
What is required to trigger the out-of-bounds read?
A BPF program using the TCP iterator must cause bpf_sock_destroy() to process a socket that is not a full struct sock, such as a TIME_WAIT or request socket. Reading sk_protocol on those socket types can access beyond the underlying object.
What does the fix change?
The fix limits the sk_protocol check to full sockets. TIME_WAIT and NEW_SYN_RECV sockets are instead handled by tcp_abort(), which already supports those socket types.