CVE-2026-99139

tcp: fix use-after-free in do_tcp_getsockopt(TCP_CONGESTION)

State
Published
Severity
Not scored
Published
Oct 28, 2026
Updated
Oct 30, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

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

tcp: fix use-after-free in do_tcp_getsockopt(TCP_CONGESTION)

do_tcp_getsockopt() reads icsk->icsk_ca_ops->name without holding rcu_read_lock(). Since commit 0baf26b0fcd7 ("bpf: tcp: Support tcp_congestion_ops in bpf"), icsk_ca_ops can point to dynamically allocated BPF struct_ops memory that may be freed concurrently via setsockopt(TCP_CONGESTION), leading to a use-after-free.

BUG: KASAN: slab-use-after-free in _copy_to_user+0x37/0x60 Read of size 16 at addr ffff888013505260 by task exploit/149 _copy_to_user+0x37/0x60 do_tcp_getsockopt+0x158a/0x2460 (net/ipv4/tcp.c:4585) tcp_getsockopt+0x91/0xf0 __sys_getsockopt+0xf7/0x170

Fix this by holding rcu_read_lock() around the ca_ops->name access, using READ_ONCE() to load icsk_ca_ops, and copying the name to a stack buffer before releasing the lock. Also annotate the relevant icsk_ca_ops stores with WRITE_ONCE() to fix the accompanying KCSAN data-race issue.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 0baf26b0fcd74bbfcef53c5d5e8bad2b99c8d0d2 to before a60e62705c17534d6b6539de7b3a40c259e6827fAffected
  • 0baf26b0fcd74bbfcef53c5d5e8bad2b99c8d0d2 to before 4b0930d66dde0a1d1898f0edbbb5496c4dfa5f03Affected
  • 0baf26b0fcd74bbfcef53c5d5e8bad2b99c8d0d2 to before 08dc5c62c09653d1c4ba67a009beb138486c2604Affected
  • 0baf26b0fcd74bbfcef53c5d5e8bad2b99c8d0d2 to before c1804ef016392dd91267d2207ee43b1de34302caAffected
  • 0baf26b0fcd74bbfcef53c5d5e8bad2b99c8d0d2 to before a8e45471afa230c1431c26c8e99ec24377e3b514Affected
  • 0baf26b0fcd74bbfcef53c5d5e8bad2b99c8d0d2 to before 5271b79b7ad68dcb222e893773f92bdabf7750f3Affected
LinuxLinux
  • 5.6Affected
  • before 5.6Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.161 through 6.6.*Not affected
  • 6.12.115 through 6.12.*Not affected
  • 6.18.59 through 6.18.*Not affected
  • 7.2.13 through 7.2.*Not affected
  • 7.3 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.