Alle Linux-kernels die na 2017 zijn uitgebracht, blijken kwetsbaar voor ernstige fouten in privilege-escalatie. Een exploit van slechts 732 bytes kan rootrechten geven op alle grote Linux-distributies, waarbij vooral gecontaineriseerde omgevingen extra kwetsbaar zijn. De proof of concept en de patches zijn openbaar beschikbaar.
Aanvallers die al toegang hebben tot een Linux-systeem, kunnen als niet-bevoorrechte gebruiker een klein script uitvoeren, volledige controle krijgen en zelfs uit Kubernetes-containers ontsnappen.

Beveiligingsonderzoekers van Theori hebben een kritieke logische fout in de Linux-kernel bekendgemaakt waarmee gebruikers een root-shell kunnen krijgen. De proof of concept bestaat uit slechts 732 bytes Python-code, maakt alleen gebruik van standaardbibliotheken en heeft geen extra afhankelijkheden nodig.
De exploit, met de naam Copy Fail en geregistreerd als CVE-2026-31431, is volgens de onderzoekers “een rechtlijnige logische fout” waarvoor geen racecondities of kernelspecifieke offsets nodig zijn.
“Zelfde script, vier distributies, vier root-shells — in één keer. Dezelfde exploit werkt ongewijzigd op elke Linux-distributie,” legt Xint Code uit, het AI-beveiligingsscanplatform van Theori.
“Een lokale gebruiker zonder rechten kan 4 gecontroleerde bytes schrijven in de page cache van elk leesbaar bestand op een Linux-systeem en daarmee root worden.”
De onderzoekers waarschuwen dat elke kernel die tussen 2017 en de patchrelease is gebouwd, kwetsbaar is.
Zij testten de exploit rechtstreeks op Ubuntu, Amazon Linux, RHEL en SUSE, maar volgens het rapport gedragen Debian, Arch, Fedora en andere distributies zich hetzelfde. Het script vereist geen hercompilatie en ook geen versiecontroles.
Er zijn inmiddels meerdere varianten van de exploit verschenen in Go, C en waarschijnlijk ook andere programmeertalen. Daardoor is de aanval nog gevaarlijker en is Python zelfs niet meer nodig.

“Patch eerst,” adviseren de onderzoekers. “Werk het kernelpakket van je distributie bij naar een versie waarin de mainline-commit a664bf3d603d is opgenomen.”
Zij waarschuwen dat de exploit zeer ernstig is, omdat ook containerontsnapping mogelijk is. Kubernetes-, Docker- en andere containers draaien op de hostkernel en delen de page cache: een deel van het RAM dat de kernel gebruikt om bestandsgegevens van het opslagapparaat in geheugen te bewaren.
Een aanvaller vanuit één container kan code uitvoeren, de hele node compromitteren en toegang krijgen tot alle andere tenants die daarop draaien.
De exploit is bovendien moeilijk op te sporen, omdat alles in RAM gebeurt en er geen sporen op de schijf achterblijven.
“Bij het vrijgeven van geheugen of na een herstart wordt de cache opnieuw schoon geladen, en een forensische schijfkopie toont het oorspronkelijke bestand,” staat in het rapport.
Hoe werkt de exploit?
De exploit richt zich op de page cache om de gecachte kopie van /usr/bin/su aan te passen — het commando dat Linux gebruikt om van gebruiker te wisselen. De kernel laadt een binair bestand uit de cache en als dat bestand is gewijzigd, voert hij de aangepaste code uit.
Om de exploit te laten werken, maakten de onderzoekers misbruik van drie kernelonderdelen die alleen afzonderlijk veilig zijn.
De Linux-kernel laat gebruikers zonder rechten hardwareversleuteling uitvoeren via de AF_ALG crypto-API. Daarmee kan elke gebruiker gegevens versleutelen of ontsleutelen zonder privileges.
Om gegevens zonder kopiëren naar cryptobewerkingen te verplaatsen, gebruikt de kernel een mechanisme genaamd splice().
Wanneer splice() een bestand naar een cryptobewerking verplaatst, loopt de data rechtstreeks via de page cache, die in het geheugen is opgeslagen.

De daadwerkelijke logische fout zit in het cryptografische sjabloon authencesn van de Linux-kernel, dat VPN-verkeer afhandelt door versleuteling en authenticatie te combineren in één bewerking. Deze functie werd in 2011 toegevoegd en was nooit bedoeld om toegankelijk te zijn voor programma’s in userspace.
De buffer van authencesn wordt gebruikt als tijdelijke werkruimte tijdens het ontsleutelen, maar het probleem is dat er 4 bytes voorbij de toegestane grens worden geschreven en daarna nooit worden hersteld.
In 2017 werd een prestatie-optimalisatie doorgevoerd. In plaats van aparte invoer- en uitvoerbuffers begon de cryptolaag van de kernel dezelfde geheugenruimte voor beide te gebruiken. Daardoor kwamen die 4 extra bytes ineens direct terecht in de in-memory kopie van het doelbestand.
Hierdoor kunnen aanvallers herhaaldelijk een kernelversleutelfunctie aanroepen en in een lus 4-bytewaarden naar de page cache schrijven, totdat het legitieme commando in RAM geleidelijk wordt vervangen.
Uiteindelijk kan kwaadaardige code in de in-memory kopie van de su-binaire worden geïnjecteerd. Wanneer de aanvaller daarna het su-commando uitvoert, laadt de kernel een gemanipuleerde versie uit de page cache en verleent rootrechten.
Volgens het uitgebreide rapport van Xint merkte niemand de koppeling op tussen de in-place optimalisatie van 2017, de tijdelijke schrijfacties van authencesn en het gebruik van page-cachepagina’s in het splice-pad. Elke wijziging was op zichzelf logisch. De kwetsbaarheid ontstond op het snijvlak van alle drie en kon daardoor bijna tien jaar lang ongemerkt worden misbruikt.
De onderzoekers leggen ook uit dat deze bug kan worden gebruikt om elk programma op Linux aan te vallen dat als root draait, zoals passwd, chsh, chfn, mount, sudo of pkexec, en niet alleen su.
Moet je je zorgen maken?
“Als je multi-tenant Linux gebruikt, containers met een gedeelde kernel, CI-runners die onbetrouwbare code uitvoeren, of iets waarbij iemand die je niet volledig vertrouwt als gewone gebruiker code kan uitvoeren: ja. Patch het,” concludeert het rapport.
De kwetsbaarheid werd op 23 maart 2026 gemeld bij het kernelbeveiligingsteam van Linux, twee dagen nadat de patches waren voorgesteld en beoordeeld. Vanaf 1 april 2026 werd de patch opgenomen in de mainline.
“Patches zijn beschikbaar via de stable tree van de Linux-kernel. De oplossing draait de problematische in-place-afhandeling terug en vereenvoudigt AD-kopieën in de module algif_aead. Er zijn meerdere patchcommits beschikbaar,” schrijft SentinelOne in een beveiligingsadvies.
Als direct patchen niet mogelijk is, adviseren de onderzoekers om de module algif_aead uit te schakelen, de toegang tot de AF_ALG-socketinterface te beperken via kernelconfiguratie of beveiligingsmodules, en SELinux– of AppArmor-beleid toe te passen om te beperken welke processen toegang hebben tot deze cryptografische socketinterface.
GrapheneOS zegt dat zijn gebruikers niet kwetsbaar zijn dankzij de diepe integratie van SELinux in het Android Open Source Project (AOSP).
“AOSP staat alleen het gebruik van specifieke soorten sockets toe binnen het besturingssysteem. Alleen het proces dumpstate, dat wordt gebruikt om bugrapporten als zip-bestand aan te maken, mag AF_ALG-sockets gebruiken,” staat in het bericht op X.
Volgens de National Vulnerability Database krijgt deze bug een ernstscore van 7,8 op 10.






