
Linux kernel exploits go public: patch to block local root
Exploits for four Linux kernel flaws, each letting a local user gain root, are public now; patches exist, so unpatched systems are the risk.
Working exploit code for four Linux kernel exploits, each of which lets a local user take full control of a machine, has been published by the researcher who found them. All four are memory-safety bugs in the part of the system that handles networking traffic, and each one lets someone who already has a small amount of access, for example a low-privileged account on a shared server, climb to root, which is the highest level of access on a Linux machine. The kernel is the core program of a Linux computer: it sits between the hardware and everything else and decides who is allowed to do what. The researcher, Asim Manizada, reported the flaws to the Linux kernel security team in mid-July and published his technical write-up together with working exploits on September 18, after a coordinated hold with Linux distributions so that the fixes could be released first. Kernel maintainers have fixed all four over the past few weeks, so a system running an up-to-date kernel is not affected. So far there are no reports of the four being used in real-world attacks.
The exploits are Manizada's own, are tuned to specific kernel builds, and can crash a machine, so they are meant for isolated test systems rather than live ones. Even so, public exploit code raises the risk on shared systems. Local privilege escalation, the technical name for going from a limited account to full control, matters most where an attacker already holds some access, such as a low-privileged account on a multi-user server, and wants to take the whole machine over. Any machine still running an older kernel should be updated.
The four flaws have been named DirtyAH6, TUNderflow, PPPoEject and DiagSpill. DirtyAH6 is tracked as CVE-2026-80844 and lives in the IPsec code that handles the IPv6 Authentication Header, where IPsec is a set of rules for encrypting and verifying network traffic and IPv6 is the current version of the internet's addressing system. TUNderflow is CVE-2026-81000 and sits in the TUN and TAP virtual network devices, which are software versions of a network card. PPPoEject is CVE-2026-68121 and sits in the code for PPP over Ethernet, a way of carrying an internet connection over a network cable that many broadband providers still use. DiagSpill is CVE-2026-74469 and sits in the reporting code for SCTP, a networking protocol used for telephone-style signalling traffic. Three of the four can be reached by an ordinary user only when unprivileged user namespaces are enabled. User namespaces are a Linux feature that lets a normal user act as root inside a private sandbox. Many distributions enable them by default, which is how an attacker gains the network privileges the exploits require. The fourth flaw, DiagSpill, is the exception: it requires no user namespaces and no special privileges, as long as the system has the SCTP networking module available.
Manizada also found that two of the flaws, DirtyAH6 and DiagSpill, can be triggered over the network, but only in narrow cases and mainly to cause the system to crash rather than to seize control of it. DirtyAH6 can crash a host that acts as an IPv6 router or gateway and adds an IPsec Authentication Header in transport mode. DiagSpill can crash a host only when certain SCTP options, which are off by default, are switched on. Manizada reached remote root with DirtyAH6 only in his own lab, and only by shaping memory on the target first. Doing that from a remote position alone, he wrote, "looks extremely difficult", although he did not rule it out. For DiagSpill, he said he sees no path to remote root at all, even with perfect memory shaping. He also said the flaws could, in theory, allow an attacker to escape a container, the isolated compartment used to run one application separately from the rest of a server, but he did not build such an exploit.
The fix is to update to a kernel that carries all four fixes. The first stable kernel releases with the complete set are 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 and 7.2.4. Those are version numbers from the main Linux kernel project. Most people run a kernel supplied by a distribution instead, such as Debian, Ubuntu, Red Hat or SUSE, which uses its own version numbers and adds these fixes on its own schedule, so the numbers above are not the ones to look for on those systems. Check your distribution's security advisory to confirm it has shipped an update that includes all four. If patching is not possible right away, two steps reduce the risk. The first is to turn off unprivileged user namespaces, which closes the ordinary-user path to DirtyAH6, TUNderflow and PPPoEject, but does not stop DiagSpill and does not stop a container or process that already has network-admin privileges. The second is to turn off the affected features, AH6, TUN/TAP, PPPoE and SCTP, if you do not use them. Manizada recommends patching rather than turning features off, because other paths to the same flaws may exist.
All four are memory-safety bugs in different parts of the kernel's networking code. Each one allows an attacker to corrupt kernel memory, which Manizada then used to gain a root shell. The underlying mistakes are old, ranging from 10 to 21 years in the code. DirtyAH6 is in the IPsec code that handles the IPv6 Authentication Header: that code trusted a routing-header field without verifying it against the number of addresses present, so a crafted packet caused an internal pointer to move far out of bounds and write past the buffer. TUNderflow is in the TUN and TAP virtual network devices: a single value was used both as spare space and as a size, and an oversized value passed in through Open vSwitch caused the size calculation to wrap around, so packet data landed outside its buffer. PPPoEject is in the code for PPP over Ethernet: it kept a pointer into a network buffer while calling a device routine that could free and move that buffer, and the later writes then used freed memory, a bug known as a use-after-free. DiagSpill is in the reporting code for SCTP: a counter that tracks connection endpoints is only 16 bits wide, so the 65,536th endpoint wrapped it back to zero, and the reporting code then set aside no space but copied the full list, writing about 8 MiB of data past the end of its buffer.
Manizada said he found the four flaws with an AI-assisted process that builds a map of how the kernel handles memory and reasons about its layout. The kernel's fix for DirtyAH6 records this: the commit includes an "Assisted-by" line that credits his custom AI tooling. The disclosure is the latest in a run of Linux kernel privilege escalation flaws made public through 2026, several of them found with help from large language models. Manizada disclosed a similar Open vSwitch flaw, OVSwrap, in July. One of the new exploits also reuses a technique from Dirty Frag, another Linux kernel root flaw disclosed in May by a different researcher. In his write-up, Manizada said this batch likely ends the public phase of hi
How to Protect Yourself
- Install the updates your computer, server or hosting provider offers, and if you run a Linux machine, switch on automatic security updates so you do not have to remember.
- Write to your hosting company and ask one clear question: has the Linux patch for these four flaws (DirtyAH6, TUNderflow, PPPoEject and DiagSpill) been applied to the servers my website runs on, and when?
- If you run a Linux server yourself, open the security page published by your Linux version (for example Debian, Ubuntu, Red Hat or SUSE) and check that it lists an update for these flaws before assuming you are safe.
- Do not hand out extra login accounts on your server or website to people who do not strictly need them, because these flaws are most dangerous to an attacker who already has a small account there.
- Restart your server after a Linux update, since a new version of the core of the system only starts working once the machine reboots.
Vulnerabilities & Fixes
- CVE-2026-68121 PPPoEject, a use-after-free flaw in the kernel's PPP over Ethernet code that allows local privilege escalation when unprivileged user namespaces are enabled; fixed in current stable kernel releases. View the fix & details →
- CVE-2026-74469 DiagSpill, a flaw in the kernel's SCTP reporting code that allows local privilege escalation with no special privileges and can crash a host with non-default SCTP options enabled; fixed in current stable kernel releases. View the fix & details →
- CVE-2026-80844 DirtyAH6, a flaw in the kernel's IPsec code for the IPv6 Authentication Header that allows local privilege escalation and, in narrow router cases, a crash; fixed in current stable kernel releases. View the fix & details →
- CVE-2026-81000 TUNderflow, a flaw in the TUN and TAP virtual network devices that allows local privilege escalation when unprivileged user namespaces are enabled; fixed in current stable kernel releases. View the fix & details →
Terms Explained
- Linux kernel The central program of a Linux computer, which sits between the hardware and all the other software and decides who is allowed to do what.
- root The built-in administrator level on a Linux machine, which can read, change or delete anything on it.
- local privilege escalation A way for somebody who already has a small amount of access to a computer to give themselves full administrator control of it.
- CVE A public reference number given to a known security flaw so that everyone can look up the same problem by one shared name.
- user namespaces A Linux feature that lets an ordinary user behave like the administrator inside a small private sandbox on the same machine.
- SCTP A networking protocol used for telephone-style signalling traffic, which can be present on a Linux system even when nobody is using it.
- use-after-free A programming bug where software keeps using a piece of memory after it has been handed back, so something else can be written into that space.
- container A lightweight isolated compartment on a server used to run one application separately from everything else on the machine.