TCP Use-After-Free: CVE-2026-98432 / CVSS 9.8

(atlasum.net)

199 points | by oger 3 hours ago

26 comments

  • peanut-walrus 2 hours ago
    Some notes I've got about this:

    - MPTCP is not a requirement, it is a generic use-after-free.

    - Exploitability over the internet is unlikely, most ISP routers drop packets with IP options fields.

    - At least according to Red Hat, dropping packets with IP options yourself helps, but is not a full mitigation.

    - Successful exploit requires multiple CPU cores to process packets, so systems with just a single core or packet processing pinned to a single core are not affected.

    • tptacek 1 hour ago
      Dropping packets with IP options from XDP should be a more complete mitigation (also more performant).
    • wahern 1 hour ago
      > Exploitability over the internet is unlikely, most ISP routers drop packets with ipoptions fields.

      That doesn't track. Apple iPhones are a major user of MPTCP and they report the majority of requests supporting MPTCP, IIRC 70+%.

      • peanut-walrus 1 hour ago
        MPTCP uses TCP options fields, the vulnerability is in IP options.
    • lossolo 39 minutes ago
      And it takes around an hour to do this in lab setting locally:

      > An enabling property of this race condition is that a lost race only fails the handshake without crashing the whole system, so a determined attacker can retry indefinitely until they succeed. In our proof of concept, it takes 48 minutes to leak a kernel pointer and another five minutes to reach the shell command execution

      source: https://www.anthropic.com/research/discovering-vulnerabiliti...

  • teekert 36 minutes ago
    I've been compiling a list of cybersecurity RSS feeds to build a small automation (with oversight from Hermes agent) to ping me (ntfy.sh or just Telegram) when a CVE requires my intervention (matching them to a list of services I run for clients and myself.)

    My list (of feeds) is still small, but this CVE did not show up, do any of you have any tips for RSS feeds to use for this purpose?

  • swinglock 2 hours ago
    How are Ubuntu and RHEL not fixed? Few operating systems market themselves more as suitable for servers. What are they doing over there?
    • kev009 1 hour ago
      If you read commit logs of, say kernel.org and a distro kernel, and aren't concerned you are blissfully ignorant (and it is worse for the broader userland repos). It's particularly bad when they don't track a kernel.org LTS. Their kernel orgs are pretty lean and this has been the status quo for decades. CVEs of sufficient stature like this will get fixed but majority of other issues slip by unnoticed. LTS is kind of a myth, it trades ABI and API stability for a lot of other issues.
      • icedchai 3 minutes ago
        Over the past few months I've started to install newer ubuntu kernels using the mainline PPA. However, it goes long periods of time without getting updates, so it's not really a satisfactory solution. In one case I just built the kernel myself.

        LTS doesn't work if you want immediate fixes like the current environment requires.

    • throw0101d 59 minutes ago
      > How are Ubuntu and RHEL not fixed?

      Ubuntu has had kernels in the "proposed" component for several days now if you want to pull it in manually. Not yet pushed to "security" or "updates".

    • gadtfly 1 hour ago
      Given the current and rapidly upcoming environment, would that not imply that those are no longer viable choices? As like a fairly urgent emergency consideration?

      If they cannot demonstate being systematically able to adapt towards the required reaction time (minutes? hours?) by almost-comically many orders of magnitude (multiple weeks), and it is only going to get worse, then what other conclusion could there be?

      Like they'll only organizationally adapt when it's far too late (everybody using their shit has already been pwned), and then it'll be an unpracticed emergency adaptation.

    • Shank 2 hours ago
      I’m pretty confused because apparently Anthropic is the group that followed “responsible disclosure” but apparently even though upstream was patched a couple weeks ago, still nothing on either.
    • Flockster 1 hour ago
      Going by the proxmox forum the fix is already in the sources (proxmox released their kernel based on them a few days ago). But I could not see, if it is already released for the users.

      https://forum.proxmox.com/threads/cve-2026-98432-in-proxmox-...

      • tlamponi 1 hour ago
        Yes, we (Proxmox) included the fix for this in 7.0.14-25, which was initially packaged two weeks ago.

        It went through internal QA and to the test soon after that, then a few days later to the no-subscription repository and as of yesterday morning CET it was cleared for the enterprise one, so it's available on all repos of all Products we got in their current supported releases.

        For kernel updates we where even more conservative in the past, but with the current churn on often quite relevant fixes picked up the pace a bit on moving them along, trying still to balance rolling out fixes fast(er) while not doing that so fast that tricky (hardware/setup specific) regressions don't get caught.

        edit: As this makes the rounds we also released a PSA for it now [0] to make our status here easier to find.

        [0]: https://forum.proxmox.com/threads/proxmox-virtual-environmen...

    • lakeviewterrace 1 hour ago
      Running regression tests I assume; they can't just YOLO shit like most OSS projects for the exact reason you mention.
  • grey-area 2 hours ago
    • codegeek 59 minutes ago
      Interestingly, Ubuntu Priority is set to "High" and not "Critical" which is defined as:

      "A significant problem, typically exploitable for nearly all users in a default installation of Ubuntu. Includes serious remote denial of service, local root privilege escalations, local data theft, and data loss."

    • throw0101d 57 minutes ago
      > https://ubuntu.com/security/CVE-2026-98432

      The listed kernels are in the "proposed" component (and not yet in "security" or "udpates") if you want to pull them down onto canary systems for testing before going to production.

    • AdrianCX 2 hours ago
      so just block multipath and add the firewall rule from article that drops packets with IPv4 options
      • stefangordon 1 hour ago
        Both of which we are finding out are apparently insufficient to mitigate this.
      • grey-area 1 hour ago
        Hoping fix will be out soon so we don’t have to.
  • Shank 2 hours ago
    At least if you’re on Amazon Web Services behind a load balancer you probably aren’t really that impacted enough to spend Halloween patching.

    > AWS Web Application Firewall, Application Load Balancer, Classic Load Balancer, TLS Listeners on Network Load Balancer, Cloud Front, API Gateway

    > Customers using the above services do not receive TCP connections from untrusted sources directly when following best practices. AWS is applying updates to the underlying infrastructure of these services and no immediate customer action is required if you are using these services. We still recommend customers update their self-managed instances behind these services within the next 30 days.

    [0]: https://aws.amazon.com/security/security-bulletins/2026-160-...

    • gwbas1c 2 hours ago
      I'm more worried about my consumer-grade router.
      • wtch98 1 hour ago
        I blocked packets arriving externally on my firewall with ip-options a couple of days ago. Firewall rule has zero hits, and I've got a very open ISP (andrews+arnold), if I want I can host SMTP, DNS, whatever
    • sebmellen 2 hours ago
      Another reason hyperscaler cloud providers will continue to grow (IMO)!
      • exyi 25 minutes ago
        My VPS was auto-updated and restarted more than 14 days ago. The logs have rolled already. Probably October 12 early morning.

        Another reason NixOS will continue to grow :)

  • winwang 47 minutes ago
    It's okay guys, the authors simply don't know how to write good C. A real C programmer would not have shipped such a basic use-after-free bug. Rust is just a crutch.
  • gadtfly 2 hours ago
    Everything talks about this in terms of servers, but what about desktop Linux in typical setups? Consumer modems and routers? IoT junk?
    • rwmj 1 hour ago
      IoT devices will get fixes delivered on the 12th of never.
      • RedShift1 1 hour ago
        The security fixed will be installed next tuesday.
      • gadtfly 1 hour ago
        But are they exploitably vulnerable to this specifically in typical setups?
        • rwmj 1 hour ago
          To be fair probably not as many will be single core and this requires multi-core. As for the thousands of other CVEs though ...
    • eterm 1 hour ago
      You should assume your IoT junk is already compromised, that's why your IoT junk runs on a dedicated VLAN.
      • basilikum 56 minutes ago
        What kernel is the router managing these VLANs running?
      • gadtfly 1 hour ago
        Desktop Linux in typical setups? Consumer modems and routers?
  • mrob 2 hours ago
    >the kernel handed those saved options from the request socket to the new connection without copying them, then freed them immediately when the connection went away, while another CPU could still be reading them to build a handshake reply.

    If this requires a multi-core system to exploit, it's good news for most of the consumer routers that will never get updates. Saved by cheap single-core hardware.

    • microtonal 2 hours ago
      You would be surprised. A lot of cheap consumer routers are have two or four ARM cores. The bigger issue is that they are typically running a kernel from the stone age (< 6.0.0). Sometimes a still-supported LTS kernel like 5.10 or 5.15, but then they stopped at an old patch level.

      Heck, apparently even the new Unifi UCG Fiber is running 5.4.213 (September 2022), but maybe they backport some fixes?

      [1] https://community.ui.com/releases/dd0283dc-bf71-4140-ae1d-c1...

      • FredFS456 9 minutes ago
        Note that even the latest OpenWRT is vulnerable to this, I'm running OpenWRT 25.12.6 and the kernel version is 6.12.112
    • dist-epoch 2 hours ago
      Those routers probably have 20 other critical un-patched exploits ...

      An entire ecosystem of malware crawling and cohabiting in them.

  • jck86 23 minutes ago
    Finally a usecase for mptcp on linux. Been waiting and trying off and on for years to get it to do something, but now it can give a nice remote root shell. Well, not to me, I just get to patch devices.
  • marcosscriven 2 hours ago
    Can anyone explain how use after free results in a practical exploit?

    I ask because I’ve been dabbling in rooting various closed devices at home. I’m finding AI fantastic at finding vulnerabilities statically (from firmware upgrade binaries), but when you then ask it to use it to get root or code execution it just goes in circles.

    In the end it usually ends up there’s no exploit it can find, because it can’t actually influence the affected memory in a useful way. This is especially so if that memory is in the heap. On the stack it’s a lot more predictable (especially with OOB writes).

    • not_a_bijection 50 minutes ago
      You need to do some https://en.wikipedia.org/wiki/Heap_feng_shui. If you can reasonably reliably trigger some other operation that allocated the freed memory for another purpose, you have something like a type confusion vulnerability.
    • fguerraz 1 hour ago
      If it’s freed it can be reallocated, so then you have pointers to the same area of memory used for completely different data structures, and this can go very wrong
      • marcosscriven 1 hour ago
        I get the principle - what I struggle to find is concrete examples of how it can practically be used.

        How do you know which pointer (as I say, especially if it’s in the heap)? And I know it can go wrong - but how do you do more than just crash the kernel?

        In OOB writes in a stack variable it’s completely clear to me. For other situations I’d love to find real and clearly explained exploits of past UAF or OOB vulnerabilities.

        • cowlevel 1 hour ago
          Getting the right thing allocated in the right place to exploit a UAF is usually very very tricky. For a defender we just need to know it's probably possible and therefore we patch the bug, but the attacker still has a difficult job to do even already knowing a UAF bug.

          The simplest thing you could try to do is allocate several more of the same type of object and hope one of them lands at the same memory address. For example if you can UAF a web app's user session and keep it open for a long time period (not true in the TCP bug), you might try to wait until an admin happens to log in with their session at the same address, then use their admin session.

          Or you can allocate a lot of something else objects and hope a certain field overlaps, like a function pointer if you can write to it. Like suppose you can get some kind of authentication callback pointer to overlap where your packet sequence number was, maybe you can send a certain number of packets to make it point to the return instruction and skip the authentication.

        • wiml 48 minutes ago
          A web search for "exploit chain uaf" found me a few real-world and a few tutorial examples, though I don't know which are good.

          At a high level, though: once you've gotten a new object allocated where the old one was, you now have two different views of the same bit of memory. You use valid operations on one view to put the other one into a corrupted state. For example: in a unixlike kernel, maybe one view has a field containing a function pointer (for method dispatch, essentially). You read that field using the other view, use it to deduce something about the target's memory layout, write a new value to the pointer, then use the field via the first view to cause execution to jump to a location you control.

    • kstrauser 1 hour ago
      One example is that you might be able to read what was written there. Here that may mean you could read another process’s packet(s). Imagine they were sending unencrypted passwords, perhaps because it’s in a trusted LAN connection.
    • lossolo 24 minutes ago
      It goes around in circles because a UAF alone isn't enough in a lot of cases, sometimes you also need a chain (an info leak, read/write primitive etc), a way to defeat ASLR and so on depending on what you are working on and target mitigations. Not all UAFs can be used for RCEs, some can be used only for DoS or for nothing really.
    • strawberryfarm 38 minutes ago
      been doing exactly this lately with camera firmware and yeah the circles thing is real, but im pretty sure its a feedback loop problem, not a model problem

      the model spins because it cant test its own guesses. what fixed it for me was emulating the actual device. qemu with the vendor rootfs, real binaries running, and then every claim becomes checkable: did the daemon actually parse my input, which uid is it under, what does its own log say. once it can check things it stops guessing, getting qemu to actually boot the thing was its own little hell though, took more tries than i want to admit.

      the other thing i learned the hard way: most static findings die on reachability, not on exploit primitives. so i run them in the emulator first and kill the unreachable ones cheap, before spending any time on heap work

      on heap vs stack, i think that intuition is desktop shaped. device userland usually has weak or no mitigations, heap uafs are way more tractable there than youd expect

  • geye1234 1 hour ago
    My home firewall runs Ubuntu. It doesn't accept (new) incoming packets from the internet. I don't have any IoT devices except printers, whose packets the firewall rejects, and has done since I bought them. Do I need to do anything apart from wait for the patch to become available?
  • wiskinator 2 hours ago
    > Anthropic says Claude wrote the exploit "after initial prompting," that it runs "arbitrary commands as root, without any credentials or user interaction" on servers with a multipath TCP listener, and that in its proof of concept "it takes 48 minutes to leak a kernel pointer and another five minutes to reach the shell command execution."

    This is wild. I'm a firmware nerd, not a backend nerd, what percentage of TCP/IP servers are 'multipath'?

    Also, since IPv6 isn't affected, wouldn't it be funny if this is what it took to get everyone to switch.

    • cataflam 2 hours ago
      > what percentage of TCP/IP servers are 'multipath'?

      no idea, but at least Tailscale and Caddy were opening MPTCP sockets on servers I checked.

    • dist-epoch 2 hours ago
      My understanding is that an app explicitly needs to open a "multipath" socket. Go 1.24 does that by default, so does Caddy, these would be the big ones.
      • grey-area 2 hours ago
        Your understanding seems to be wrong.

        Every Ubuntu version in the last decade is currently vulnerable.

        https://ubuntu.com/security/CVE-2026-98432

        Patches not yet available. That makes this a big deal.

        This article says that this isn’t app level but is level and can be exploited before requests reach apps.

        • dist-epoch 2 hours ago
          > on servers with a multipath TCP listener

          I was talking about the Anthropic blog post, only Go/Caddy enable multipath TCP listeners by default.

          • grey-area 2 hours ago
            Well somebody is wrong, this blog post says:

            Why it's urgent: the bug sits in code every Linux server runs when it accepts an IPv4 TCP connection, before any application sees the connection.

            It reads like it was LLM generated though so who knows. There is at least a simple mitigation for Golang apps if that is the only concern.

            • dist-epoch 2 hours ago
              Both are correct :)

              Anthropic only exploited multipath TCP, but the bug is deeper and also affects TCP connections, but it looks like this path is harder to exploit, and it's unclear if anybody managed to.

              • grey-area 2 hours ago
                Thanks. Expanding exploits is something LLMs seem pretty good at so I’d expect people to manage a more general exploit soon if not already. Hopefully it’ll be patched before that happens.
  • lakeviewterrace 1 hour ago
    Is OpenWRT affected? Because that would be a real fawkin problem.
    • lunar_rover 1 hour ago
      OpenWrt doesn't open ports by default so I think the impact is minimal, unless this can breach nftables as well. CGNAT also mitigates this as a side effect.

      If you have services open on the IPv4 net however, close them immediately as a precaution.

      • basilikum 53 minutes ago
        How do you plan on reopening them again after you've closed 443 and 22?
    • ronnier 1 hour ago
      As much as I hate to link to this site, this particular sub is very good:

      https://www.reddit.com/r/openwrt/comments/1xka85h/is_the_ope...

      They say 25.12-SNAPSHOT has it fixed

  • bana-io 1 hour ago
    Without a test-case, read POC, how do I verify if my server is affected?
  • rurban 1 hour ago
    In an earlier report, it said only affected is kernel 4.4, not all since. This quite dramatic now.

    I see. https://nvd.nist.gov/vuln/detail/cve-2026-98432 affected versions format is the culprit. Entirely unusable. We do have versions, branch names and tags for a reason.

    • pizza234 1 hour ago
      Wrong. Every kernel from 4.4 onward is affected until the fixed releases (5.10.272, 5.15.223, 6.1.190 and so on).
  • daemonologist 2 hours ago
  • theteapot 2 hours ago
    What is a "multipath TCP listener"?
    • jacquesm 1 hour ago
      A listener is a piece of software that advertises itself as available to inbound connections. You can do this on a variety of protocols.

      Multipath TCP is a neat trick that allows a single TCP connection (TCP = Transport Control Protocol, a stateless protocol for long running connections) to use multiple physical interfaces. You could do something similar before MTCP using bonding, but this was annoying to set up and usually required application level code to efficiently use the bonded connection. MTCP makes this much simpler from an application level point of view and it can use widely diverse underlying transport layers at the same time (for instance, WiFi, Cellular and wired connections).

    • wahern 2 hours ago
      See https://en.wikipedia.org/wiki/Multipath_TCP

      It's an extension to TCP that, similar to QUIC, allows you to use multiple address/port pairs to transmit data over a single logical stream. Both client/initiator and server/listener have to opt into the extension. This might need to be enabled explicitly by the application[1], which Go apparently does for you, or judging from other posts may be enabled by default systemwide, depending on your platform.

      AFAIU, a major user of MPTCP is Apple and the iPhone, and the ubiquity of iPhone clients motivated implementation in and deployment on Linux servers.

      [1] https://docs.kernel.org/networking/mptcp.html#sockets-api

    • Noxwizard 2 hours ago
      I had to look it up too since I hadn't heard of it. It's an extension to TCP that allows responses across different NICs. Sort of like Link Aggregation on to a switch, except it can go out dissimilar interfaces, like your wifi connection and your hardwired connection. Looks like you have to opt into it when you set up your socket: https://docs.kernel.org/networking/mptcp.html
    • dist-epoch 2 hours ago
      You have a Wifi network interface and a wired Ethernet one, multipath is somehow combining the two together.
      • sweetjuly 2 hours ago
        In addition to aggregating, it can also be useful in cases where one link is much slower or higher latency. For example, if you're sitting in your driveway trying to get directions in maps while your phone is still on your very weak wifi network, it's a better user experience to have it to attempt the request using both radios concurrently so that it can fallback to cellular without waiting for a timeout/connection error if you're too far for wifi to actually work well.
        • cowlevel 1 hour ago
          Do apps actually use this possibility though?
  • lakeviewterrace 1 hour ago
    The linked source spun up my fans with 100% GPU utilization. Is there some... unwelcome... script running?
  • api 2 hours ago
    2027 is going to be the year of two to three major CVEs per day.

    The discourse on this is weird, sounds at times as if these are “because of AI.” These are mostly pre-existing bugs, some very old, and they’ve been lurking. If they all get found we exit the other side more secure and reliable.

    • wry_xy 28 minutes ago
      I went on a security kick early this year, locking down everything as much as I could. Build your systems with the assumption that you WILL get hacked. Limit blast radius. Be prepared.

      The next few years will be crazy, but you're right, we'll come out the other side more secure than ever before. Just gotta make it that far!

    • jstanley 38 minutes ago
      > If they all get found we exit the other side more secure and reliable.

      I agree, but as yet we have no idea how much pain we have to pass through to get to the other side.

    • Gigachad 23 minutes ago
      On the other side we have a Linux networking stack written in Rust.
  • jonathanstrange 25 minutes ago
    I tried to find a mitigation using a ufw filter that rejects IPv4 packets with too large headers but it didn't work. It broke something essential and I had to switch it off again. I'd be interested in hearing about a temporary mitigation using firewall rules.
  • dofm 36 minutes ago
    [06:00]
  • jmclnx 2 hours ago
    If I am reading this right, Slackware 15.0 is already fixed:

         % uname -a
         Linux XXXX 5.15.223 #1 SMP PREEMPT Thu Oct 22 00:03:07 CDT 2026
         x86_64 Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz GenuineIntel GNU/Linux
    • cyberpunk 43 minutes ago
      You’re still on slackware? I’ve not thought about it in years! How’re things over there?
  • voidfunc 2 hours ago
    Oh joy.
  • oger 3 hours ago
    MikroTik routers seem affected but mitigations are available.

    Watch your Linux systems for kernel updates. Reboot!

    • tgv 2 hours ago
      If you use sysctl to disable mptcp, you need to do that again after each reboot.
  • ogogmad 2 hours ago
    How are people finding Fil-C? It's designed to avoid things like this.
    • _flux 1 hour ago
      It might be bit of an effort to get Fil-C compiling the Linux kernel. As I understand it, it would amount to running garbage collector in the kernel, so some care would probably need to be taken to ensure it doesn't stop things at the wrong time, e.g. interrupts.
    • cowlevel 1 hour ago
      Does it support writing kernels?