6 critical advisoriessshhole OpenSSH bypass·Linux CVE-2026-98432·ClickHouse CVE-2026-116366·LiteLLM 1.107.0·PHP2Shell·GitLab CVE-2026-110264All advisories→
All security advisoriesSecurity advisory

Linux kernel IPv4 TCP use-after-free, remote root on MPTCP servers: CVE-2026-98432

CVE-2026-98432 is a race in the code every Linux server runs when it accepts an IPv4 TCP connection. An unauthenticated remote peer can make the kernel use memory it has already freed, before any application sees the connection. Anthropic says its model built a working remote root exploit against servers with a multipath TCP (MPTCP) listener, and Go programs open those by default. Upstream stable kernels, Red Hat Enterprise Linux and most major distributions are fixed. As of 5 November 2026, Ubuntu's fixed kernels are still in testing in its -proposed pocket.

Status
Upstream, RHEL and most distributions are fixed. Ubuntu's fixed kernels are still in -proposed testing. No exploitation reported, not in CISA KEV.
Affects
Linux kernel 4.4 and later, before 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 and 7.3. Distribution kernels follow their own versions.
Severity
Critical, CVSS 3.1 9.8 (kernel CNA and Red Hat). Network, no authentication, no user interaction.
Identifiers
Published
Updated

Reflects what was publicly known on the last updated date. Every fact links to a primary source at the end of the page.

On this page
  1. Are you affected?
  2. What to do
  3. Fixed kernels
  4. Distribution status
  5. How the bug works
  6. Multipath TCP and Go
  7. If you cannot patch
  8. Look for signs
  9. Timeline
  10. Questions
  11. Sources

Are you affected?

Almost certainly, if you run Linux servers. The bug is in code every kernel from 4.4 on runs when it accepts an IPv4 TCP connection.

  • Your Linux hosts have an MPTCP listener

    Including any Go 1.24+ service on a kernel with MPTCP enabled

    Act now

    Patch and reboot these first. Until you can, apply the packet filter and turn MPTCP off. How

  • You run Ubuntu on internet-facing servers

    Fixed kernels only in the -proposed pocket as of 5 November 2026

    Act now

    Apply the interim mitigations now and install the fixed kernel the day it reaches the updates pocket. Status

  • Any other Linux host that accepts IPv4 TCP connections

    Web, SSH, database, load balancer, Kubernetes node

    Update needed

    Install your distribution's fixed kernel and reboot. Fixed kernels

  • You run containers or Kubernetes

    Pods and containers use the node's kernel

    Update needed

    Patch and reboot the nodes. New container images do not fix a kernel bug.

  • You ship an appliance or image with a bundled kernel

    Firmware, virtual appliance, custom cloud image

    Update needed

    Rebuild on a fixed kernel and tell customers which release carries it.

  • Your kernel is older than 4.4

    For example the RHEL 7 3.10 kernel

    Low risk

    Not affected by this bug: the vulnerable code arrived in 4.4. Red Hat confirms RHEL 6 and 7 are not affected.

What to do

A fixed kernel and a reboot is the only complete fix. Everything else reduces exposure.

  1. Find the running kernel on every host and node

    Run these on hosts and Kubernetes nodes, not inside containers. Compare the result with your distribution's status, not with the upstream version number.
    Shell
    uname -r                            # running kernel
    uname -v                            # Debian: running package version
    dpkg -l 'linux-image*' | grep ^ii   # Debian, Ubuntu: installed kernels
    rpm -q kernel                       # RHEL family, SUSE: installed kernels
    needs-restarting -r                 # RHEL family: is a reboot pending?
  2. Find hosts with multipath TCP listeners

    These match the setup of the only demonstrated exploit. An empty ss -M result means no MPTCP listener. Go services built with Go 1.24 or later show up here whenever the kernel allows MPTCP. Red Hat cautions that an empty result is not a test for exposure: every host still needs the fixed kernel.
    Shell
    sysctl net.mptcp.enabled    # 1 means applications may open MPTCP sockets
    sudo ss -Mlnp               # MPTCP listening sockets and their processes
  3. Install the fixed kernel and reboot, exposed hosts first

    Order: internet-facing hosts with MPTCP listeners, then other internet-facing hosts, then internal ones. A kernel update does nothing until the machine boots into it.
  4. No fixed kernel yet? Mitigate today

    On Ubuntu, drop IPv4 TCP packets that carry IP options and turn off MPTCP if you do not use it. Commands
  5. Confirm after the reboot

    Rerun uname -r and check it against the fixed version, then remove any temporary packet filter.

Fixed upstream kernels

For self-built kernels. Later releases on the same line also contain the fix.

Fixed upstream Linux kernel version for each release line
If you runFixed inNotes
7.3 and later7.3Mainline (fix in 7.3-rc7)
7.27.2.10Stable
6.186.18.56Longterm
6.126.12.113Longterm
6.66.6.159Longterm
6.16.1.190Longterm
5.155.15.223Longterm
5.105.10.272Longterm
Any other line from 4.4 onNone upstreamEnd of life upstream. Use a distribution fix or move to a fixed line

Kernels before 4.4 are not affected. The kernel CVE team recommends moving to the latest stable release for your line rather than cherry-picking the fix. Distribution kernels carry backports under their own version numbers.

Distribution status

As checked on 5 November 2026. Each tracker is the authority for its own kernels.

CVE-2026-98432 fix status by Linux distribution
DistributionStatusDetails
UbuntuIn testingFixed linux kernels for 22.04 (5.15.0-203.213), 24.04 (6.8.0-149.149) and 26.04 (7.0.0-43.43) are in the -proposed pocket, not yet in updates, per Canonical. Canonical lists 26.10 as fixed in 7.3.0-10.10; the tracker still shows it in progress. 20.04, 18.04 and 16.04: fix pending. No USN yet.
Red Hat Enterprise LinuxFixed1 November: RHEL 8 kernel-4.18.0-553.182.1.el8_10 (RHSA-2026:93414), RHEL 9 kernel-5.14.0-687.64.1.el9_8 (RHSA-2026:93412), RHEL 10 kernel-6.12.0-211.72.1.el10_2 (RHSA-2026:93413). RHEL 6 and 7 not affected. OpenShift still listed as affected in RHSB-2026-016, with interim node guidance.
AlmaLinuxFixedIn the production repositories since 2 November: kernel-4.18.0-553.182.1.el8_10, kernel-5.14.0-687.64.1.el9_8, kernel-6.12.0-211.72.1.el10_2. The earlier testing kernels from 30 October also contain the fix.
DebianFixed13 trixie 6.12.113-1 (DSA-6568-1). 12 bookworm 6.1.190-1 (DLA-4841-1) and linux-6.12 6.12.113-1~deb12u1 (DLA-4850-1). Testing and unstable fixed. Tracker
SUSEPartly fixedRated important (SUSE CVSS 3.1 8.1). Kernel updates released 29 October for SLES 16.0 and several SLES 15 service packs, with further updates on 3 and 4 November; SUSE still lists the overall state as Pending. Check your product on SUSE's CVE page.
Oracle LinuxFixedUnbreakable Enterprise Kernel errata ELSA-2026-500397 to -500399 (16 October) and ELSA-2026-500572 to -500574 (2 November) for Oracle Linux 7 to 10. Red Hat Compatible Kernel errata ELSA-2026-93414, -93412 and -93413 for Oracle Linux 8, 9 and 10, 2 November. CVE page
Amazon LinuxFixedEvery kernel fixed by 30 October: AL2023 kernel, kernel6.12 and kernel6.18; AL2 core and the 5.4, 5.10 and 5.15 Extras kernels. ALAS

Red Hat says any product built on the RHEL kernel, including RHEL CoreOS, OpenStack Platform and Virtualization, is potentially affected. Rocky Linux, CloudLinux and other RHEL rebuilds follow the same kernel, so check their own trackers.

How the bug works

A race between building a handshake reply and tearing down the connection it belongs to.

When a SYN arrives with IPv4 options, such as Record Route or Timestamp, the kernel stores them with the half-open connection (the request socket) so it can echo them in the SYN-ACK. When the handshake completes, tcp_v4_syn_recv_sock() hands that options block to the new socket without copying it.

Since Linux 4.4, request sockets are processed without the listener lock. If the peer retransmits its SYN at the right moment, another CPU can be building a SYN-ACK from the shared options while the new socket is destroyed and inet_sock_destruct() frees them with a plain kfree(). ip_options_build() then reads freed memory. A similar race exists during request socket migration (net.ipv4.tcp_migrate_req=1, off by default).

  • Before authentication. The CVE record says the path runs during the TCP handshake, before any application sees the connection. Any listening IPv4 TCP port is a way in.
  • Read, write, crash. Per the kernel CNA, a reclaimed object can leak kernel heap memory to the peer in the SYN-ACK, steer out-of-bounds kernel writes, or panic the host.
  • Free retries. Anthropic says a lost race only fails that handshake, so an attacker can retry indefinitely. In its proof of concept, leaking a kernel pointer to defeat KASLR took 48 minutes and reaching root command execution another five.
  • The fix. Eric Dumazet's commit changes both frees to kfree_rcu(), which waits until every reader has finished. IPv6 is not affected by the main issue because it copies the options; a related IPv6 migration case that needs CALIPSO will get a separate patch.

Kernel CNA and Red Hat: 9.8

AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

  • Attack complexity low: the attacker drives both sides of the race
  • Red Hat raised its rating to Critical on 30 October
  • Red Hat's bulletin now names remote code execution

SUSE, Oracle, Amazon: 8.1

AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

  • Attack complexity high: the timing window is narrow
  • Rated Important or important
  • Every other metric matches the 9.8 vector

Multipath TCP and Go

The only demonstrated exploit targets MPTCP listeners, and they are more common than most teams assume.

Anthropic's exploit works against "Linux servers with a multipath TCP listener". Neither the CVE record nor the fix mentions MPTCP, and Anthropic has not explained why the listener matters. A host has one only when an application opens an MPTCP socket and the kernel permits it (net.mptcp.enabled = 1, the upstream default). RHEL, AlmaLinux and CloudLinux ship with it off.

If you cannot patch yet

These reduce exposure while you wait for a fixed kernel or a reboot window. None of them fixes the bug.

1. Drop IPv4 TCP packets that carry IP options

The CNA's scoring notes say the attacker supplies IPv4 Record Route or Timestamp options in the SYN. Legitimate TCP traffic almost never carries IPv4 options (TCP options such as SACK and window scaling live in the TCP header and are unaffected). ip hdrlength > 5 matches any IPv4 header longer than the 20-byte minimum, which only options produce. This is AlmaLinux's rule; it hooks prerouting before connection tracking, so it also covers traffic the host forwards to containers. It is safe to run more than once and does not survive a reboot.

Shell
sudo nft -f - <<'EOF'
add table ip cve_2026_98432
delete table ip cve_2026_98432
table ip cve_2026_98432 {
    chain prerouting {
        type filter hook prerouting priority -300; policy accept;
        meta l4proto tcp ip hdrlength > 5 counter drop
    }
}
EOF

sudo nft list table ip cve_2026_98432     # counter shows dropped packets
sudo nft delete table ip cve_2026_98432   # remove after the fixed kernel
  • Red Hat's variant hooks input at priority -310 in an inet table and says it "reduces exposure to this vulnerability but cannot fully prevent it."
  • AlmaLinux warns that traffic between containers on the same host may bypass the rule, and that it must not be used on networks that rely on CIPSO security labels, which travel in IPv4 options.
  • If your edge firewall or cloud network can drop IPv4 packets with options, doing it there protects every host behind it.

2. Turn off MPTCP if you do not use it

This removes the setup Anthropic's exploit needs, not the bug. New MPTCP sockets fail and Go programs fall back to plain TCP when they start, but listeners already open stay MPTCP until their service restarts. The setting is per network namespace, so set it inside containers too (Docker: --sysctl net.mptcp.enabled=0).

Shell
echo 'net.mptcp.enabled = 0' | sudo tee /etc/sysctl.d/90-disable-mptcp.conf
sudo sysctl -w net.mptcp.enabled=0
sudo ss -Mlnp    # listeners opened earlier stay MPTCP: restart their services

For a single Go service, the Go Security Team documents two switches. Code that calls SetMultipathTCP overrides both.

Shell
# Runtime, per service
GODEBUG=multipathtcp=0

# Build time, in the main module's go.mod
godebug multipathtcp=0

3. Prioritise and restrict

Keep MPTCP listeners off the internet, restrict management ports to known networks, and put hosts that must stay exposed at the top of the reboot schedule. Because the bug sits below every application, a stricter application config does not help.

A post on oss-security suggests booting with init_on_free=1, which zeroes freed memory and narrows what a use-after-free read can leak. It is a community suggestion, not a vendor recommendation, it needs a reboot and costs some performance. If you can reboot, reboot into a fixed kernel where one exists.

Look for signs

No vendor has published indicators of compromise. These are general checks based on how the bug behaves.

1. Kernel oopses in the vulnerable path

Per the CNA, a failed attempt can trigger skb_under_panic() or an oops in ip_options_build(). Unexplained reboots on exposed hosts deserve a look. Persistent journald is needed to see previous boots.

Shell
# Kernel crashes in the vulnerable path, including previous boots
sudo journalctl -k -b all | grep -E "skb_under_panic|ip_options_build|ip_build_and_send_pkt"

2. SYNs carrying IPv4 options

The packet filter's counter is a cheap sensor: a rising count on a host that sees no legitimate IP options means someone is sending them. Repeated option-bearing SYNs and retransmissions from one source in flow logs or an IDS are the same signal at the network edge.

3. Unexpected root processes

A successful exploit runs a command as root from kernel context, so its parent will not be a normal service. Look for shells, downloaders or new persistence with no matching login or deployment.

If you find signs of compromise, treat the host as lost: rebuild it on a fixed kernel and rotate every credential and key it held.

Timeline

Dates are UTC. Exploitation status: not in CISA KEV and no in-the-wild use reported as of 5 November 2026. Anthropic has not published its exploit; unverified public proof-of-concept repositories have appeared since 29 October.

  1. 2015-10-02

    2015-10-02

    Commit 079096f103fa ("tcp/dccp: install syn_recv requests into ehash table") lands for Linux 4.4 and introduces the race.

    Commit 079096f103fa

  2. 2026-10-05

    2026-10-05

    Eric Dumazet's fix, crediting Xinyang Ge of Anthropic as reporter, is merged upstream. It ships in 7.3-rc7.

    Fix commit e3f33b0a1d89

  3. 2026-10-15

    2026-10-1512:08 UTC

    The kernel CNA publishes CVE-2026-98432, CVSS 3.1 9.8, fixed in 6.12.113, 6.18.56, 7.2.10 and 7.3-rc7. Backports for 6.6, 6.1, 5.15 and 5.10 are added to the record later.

    linux-cve-announce

  4. 2026-10-16

    2026-10-16

    Oracle publishes fixed UEK kernels for Oracle Linux 7 to 10.

    Oracle Linux

  5. 2026-10-27

    2026-10-27

    Anthropic's Frontier Red Team describes a zero-click remote root exploit for the bug against servers with a multipath TCP listener. The exploit is not published.

    Anthropic

  6. 2026-10-29

    2026-10-29

    SUSE releases fixed kernels for SLES 16.0 and several SLES 15 service packs.

    SUSE

  7. 2026-10-2923:34 UTC

    The Go Security Team warns that Go 1.24 and later open MPTCP listeners by default on Linux, and that the bug is not specific to MPTCP.

    Go Security Team

  8. 2026-10-30

    2026-10-30

    Red Hat raises its rating to Critical, 9.8, and publishes RHSB-2026-016 with an nftables mitigation. AlmaLinux puts fixed kernels in testing. Amazon Linux fixes its remaining kernels.

    Red Hat RHSB-2026-016

  9. 2026-11-01

    2026-11-01

    Red Hat issues fixed kernels for RHEL 8, 9 and 10 (RHSA-2026:93414, RHSA-2026:93412, RHSA-2026:93413).

    RHSA-2026:93414

  10. 2026-11-02

    2026-11-02

    AlmaLinux moves its fixed kernels to the production repositories. Oracle publishes fixed Red Hat Compatible Kernels and further UEK errata.

    AlmaLinux

  11. 2026-11-02

    Canonical puts fixed kernels for Ubuntu 22.04, 24.04 and 26.04 in the -proposed pocket for qualification testing.

    Ubuntu blog

  12. 2026-11-03

    2026-11-03

    SUSE releases further kernel updates on 3 and 4 November. Its overall state remains Pending.

    SUSE

  13. 2026-11-05

    2026-11-05

    Ubuntu's fixed kernels are still not in the updates pocket. The CVE is not in CISA KEV and NVD has not completed its analysis.

    Ubuntu tracker

Questions

Which Linux kernel versions fix CVE-2026-98432?

Upstream, 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 and 7.3 or later. The bug was introduced in Linux 4.4. Distribution kernels carry backports under their own version numbers, so compare your kernel against your distribution's tracker, not against these numbers.

Is Ubuntu fixed for CVE-2026-98432?

Not in the regular updates yet, as of 5 November 2026. Canonical's 2 November post says fixed kernels for 22.04, 24.04 and 26.04 are in the -proposed pocket while they finish qualification testing, and lists 26.10 as fixed in 7.3.0-10.10. 20.04, 18.04 and 16.04 have a fix pending. No Ubuntu Security Notice has been published. Use the interim mitigations, or install from -proposed if you run your own kernel acceptance tests, then reboot into the fixed kernel.

Is RHEL fixed for CVE-2026-98432?

Yes. Red Hat issued fixed kernels on 1 November 2026: RHSA-2026:93414 for RHEL 8 (4.18.0-553.182.1.el8_10), RHSA-2026:93412 for RHEL 9 (5.14.0-687.64.1.el9_8) and RHSA-2026:93413 for RHEL 10 (6.12.0-211.72.1.el10_2). Install the update and reboot. Red Hat's bulletin RHSB-2026-016 still lists OpenShift Container Platform as affected and publishes interim nftables guidance for its nodes. AlmaLinux ships the same fixed kernel versions, and Oracle Linux has matching errata.

Am I safe if I do not use multipath TCP?

No. MPTCP is the setup Anthropic's demonstrated exploit needed, but the bug is in the ordinary IPv4 TCP code. The Go Security Team says systems with no MPTCP listeners may be vulnerable to similar attacks, and Red Hat stresses that RHEL, which disables MPTCP by default, is still vulnerable. Hosts with MPTCP listeners should be patched first, and every other host still needs the fixed kernel.

Are IPv6 connections affected?

Not by the main issue. The fix commit says IPv6 copies the options instead of sharing them. It notes a related IPv6 request-migration case, reachable only with CALIPSO labels, that will be fixed in a separate patch.

Do containers need a new image?

No. Containers share the host's kernel, so the fix is a kernel update and a reboot on the host or Kubernetes node. Rebuilding images changes nothing for this bug.

Is CVE-2026-98432 being exploited?

No in-the-wild exploitation has been reported, and the CVE is not in CISA's Known Exploited Vulnerabilities catalog as of 5 November 2026. Anthropic has not published its exploit, but public GitHub repositories claiming race triggers and proofs of concept have appeared since 29 October. Treat exploitation as likely soon.

Why do some vendors score it 8.1 instead of 9.8?

The kernel CNA rates attack complexity low because the attacker controls both sides of the race and can retry indefinitely. SUSE, Oracle and Amazon rate attack complexity high because the timing is hard to win, which gives 8.1. Red Hat started lower and raised its rating to Critical, 9.8, on 30 October. Anthropic's exploit reached root in about 53 minutes, so treat it as critical either way.

Sources

When an advisory like this lands, we test your exposure as soon as it's public.

Vulneron matches new vulnerabilities and public exploits against your live surface, confirms what is actually exploitable for you, and alerts in real time only when it is critical.