← All articles

Linux kernel exploits go public: patch to block local root

Linux kernel exploits go public: patch to block local root

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.

Also available in: DeutschItalianoShqip