CVE-2026-74268

tcp: clear sock_ops cb flags before force-closing a child socket

State
Published
Severity
9.8 Critical
Published
Aug 15, 2026
Updated
Oct 16, 2026
Reserved
Aug 15, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

tcp: clear sock_ops cb flags before force-closing a child socket

A child socket inherits the listener's bpf_sock_ops_cb_flags via sk_clone_lock(). If its setup fails in tcp_v4_syn_recv_sock() / tcp_v6_syn_recv_sock(), the child is freed through put_and_exit, where inet_csk_prepare_forced_close() drops the socket lock and tcp_done() runs without it.

If BPF_SOCK_OPS_STATE_CB_FLAG was inherited, tcp_done() -> tcp_set_state() calls tcp_call_bpf(), which expects the lock and trips sock_owned_by_me():

WARNING: include/net/sock.h:1799 at tcp_set_state+0x433/0x550 RIP: 0010:tcp_set_state+0x433/0x550 include/net/sock.h:1799 Call Trace: <IRQ> tcp_done+0xba/0x250 net/ipv4/tcp.c:5095 tcp_v4_syn_recv_sock+0x850/0xa50 net/ipv4/tcp_ipv4.c:1787 tcp_check_req+0xf30/0x1360 net/ipv4/tcp_minisocks.c:926 tcp_v4_rcv+0x1047/0x1b50 net/ipv4/tcp_ipv4.c:2164 </IRQ>

The child is freed before it is ever established, so it should run no sock_ops callback. Clear its cb flags in inet_csk_prepare_for_destroy_sock(), the common point for the IPv4, IPv6 and chtls forced-close paths and for the MPTCP ->syn_recv_sock() failure path (dispose_child), which reaches tcp_done() on a child that was never established too.

Scores

CVSSScoreVectorSource
3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • d44874910a26f3a8f81edf873a2473363f07f660 to before 5d5389b2c37ca00da61d1407618ebe15abae0c8bAffected
  • d44874910a26f3a8f81edf873a2473363f07f660 to before 9f30ba9aa0270a18fdd1e6cd426c480c35f7de9dAffected
  • d44874910a26f3a8f81edf873a2473363f07f660 to before 71e9c53220abd7f5a45aa4d5e5b420d3479f3a4fAffected
  • d44874910a26f3a8f81edf873a2473363f07f660 to before 9fffa6465851a1910a6e9cb7272787dd615b26b1Affected
  • d44874910a26f3a8f81edf873a2473363f07f660 to before fe23d56e9266d58ba5c380f1970118eedeee0b68Affected
  • d44874910a26f3a8f81edf873a2473363f07f660 to before ce311bd2e36596f0aa2c92ca86fb3e019ac57eaeAffected
  • d44874910a26f3a8f81edf873a2473363f07f660 to before 8874dafc9099bc49c2e5ebba030f85d276421f92Affected
  • d44874910a26f3a8f81edf873a2473363f07f660 to before 990348e5bb457697c2f1f7f7b65154a3334d9d2bAffected
LinuxLinux
  • 4.16Affected
  • before 4.16Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not 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.