Use-after-free in Linux kernel TCP_CONGESTION getsockopt handling
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Partial Red Hat: 6 without a fix
No CVSS vector from any source. Fix status from CNA and Red Hat.
Summary
The Linux kernel from 5.6 is affected. The do_tcp_getsockopt() function reads the congestion control name without holding rcu_read_lock(), so a BPF struct_ops congestion control object that a concurrent setsockopt(TCP_CONGESTION) call frees can be read after it is freed, a use-after-free.
Written with Claude Haiku 5.5 from the sources below · 2026-10-30
Description from the CNA
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.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
Remediation
Upgrade the Linux kernel to 6.1.191, 6.6.161, 6.12.115, 6.18.59, 7.2.13 or 7.3, which contain the fix. The sources list no fixed version for Red Hat Enterprise Linux 6, 8, 9 and 10 or Red Hat OpenShift Container Platform 4 and 5.
Written with Claude Haiku 5.5 from the sources below · 2026-10-30
- Fix · CNA Linux (Linux) Fixed in 6.1.191, 6.6.161, 6.12.115, 6.18.59, 7.2.13, 7.3
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 10 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 6 | Affected | No fix planned: Out of support scope |
| Red Hat Enterprise Linux 8 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 9 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 5 | Affected | No fix yet: Fix deferred |
Not affected: 1 product
- Red Hat Enterprise Linux 7
Timeline
- 2026-10-28 Threatist record created from CVE-2026-99139
- 2026-10-28 Alias added: GHSA-48cq-p2fm-8444
- 2026-10-30 Affected versions changed · Red Hat
- 2026-10-30 CVSS score added · Red Hat
- 2026-10-30 Affected versions changed · Red Hat
- 2026-10-30 Fix available: Linux/Linux@08dc5c62c09653d1c4ba67a009beb138486c2604, Linux/Linux@4b0930d66dde0a1d1898f0edbbb5496c4dfa5f03, Linux/[email protected] +3 · CNA
- 2026-10-30 3 new references · CNA
References
Other 6
- https://git.kernel.org/stable/c/a60e62705c17534d6b6539de7b3a40c259e6827f
- https://git.kernel.org/stable/c/4b0930d66dde0a1d1898f0edbbb5496c4dfa5f03
- https://git.kernel.org/stable/c/08dc5c62c09653d1c4ba67a009beb138486c2604
- https://git.kernel.org/stable/c/c1804ef016392dd91267d2207ee43b1de34302ca
- https://git.kernel.org/stable/c/a8e45471afa230c1431c26c8e99ec24377e3b514
- https://git.kernel.org/stable/c/5271b79b7ad68dcb222e893773f92bdabf7750f3
More Linux vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
Sources
- CVE-2026-99139 · CVE Program
- CVE-2026-99139 · NVD
- FIRST EPSS
- GHSA-48cq-p2fm-8444 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-99139 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences