CVE-2026-99138
NoneCVSS
—
EPSS
0.2%
Published
Oct 28, 2026
CISA due date
—
Cloudanix analysis
A bug in the Linux kernel lets an attacker crash the whole computer or take it over by tricking the system into using memory it has already thrown away.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free when do_tcp_getsockopt reads icsk->icsk_ca_ops and calls its get_info pointer without RCU protection, allowing concurrent free of BPF struct_ops memory.
Why it matters to the business
Attackers can crash the kernel or achieve code execution on affected systems, leading to denial of service or full host compromise; the issue is only one day old with no public exploit yet.
How an attack unfolds
An attacker invokes getsockopt(TCP_CC_INFO) on a TCP socket while a BPF-based congestion-control struct_ops is being unregistered; the kernel dereferences a stale pointer into already-freed memory, triggering the use-after-free.
How to fix it
Apply the upstream fix that wraps the ca_ops load and get_info call inside rcu_read_lock/rcu_read_unlock and uses READ_ONCE; rebuild and reboot to a patched kernel.
How to confirm the fix worked
Confirm the presence of rcu_read_lock around the icsk_ca_ops access and the READ_ONCE load in net/ipv4/tcp.c:do_tcp_getsockopt; re-run KASAN or syzkaller tests that previously triggered the UAF.
Typical attack path
- Load or register a BPF struct_ops TCP congestion-control program
- Trigger concurrent removal or replacement of that program
- Call getsockopt with TCP_CC_INFO option on an affected socket
- Kernel reads stale icsk_ca_ops pointer and calls get_info through freed memory
How to detect it
Search kernel logs and KASAN reports for slab-use-after-free mentioning do_tcp_getsockopt; inspect audit logs for unusual getsockopt calls on TCP sockets around the time of any crash.
- BUG: KASAN: slab-use-after-free in do_tcp_getsockopt
- Read of size 8 at addr .* by task .* in net/ipv4/tcp.c:4564
What your security team should do
- Prioritize kernel updates on all Linux hosts within the next 7 days
- Restrict unprivileged use of getsockopt(TCP_CC_INFO) via seccomp or LSM where possible
- Monitor for KASAN reports containing do_tcp_getsockopt+0x2037
- Test the patch in staging before broad rollout
The record
In the Linux kernel, the following vulnerability has been resolved: tcp: fix use-after-free in do_tcp_getsockopt(TCP_CC_INFO) do_tcp_getsockopt() reads icsk->icsk_ca_ops and dereferences the get_info function pointer without rcu_read_lock(). With BPF struct_ops congestion control, ca_ops can point to dynamically allocated memory that is freed concurrently, resulting in a use-after-free when the kernel dereferences or calls through the stale pointer. BUG: KASAN: slab-use-after-free in do_tcp_getsockopt+0x2037/0x23e0 Read of size 8 at addr ffff888013701258 by task exploit/149 do_tcp_getsockopt+0x2037/0x23e0 (net/ipv4/tcp.c:4564) tcp_getsockopt+0x91/0xf0 __sys_getsockopt+0xf7/0x170 Fix this by wrapping the ca_ops load and get_info call within rcu_read_lock()/rcu_read_unlock(), and using READ_ONCE() to load the icsk_ca_ops pointer.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|