Copy Fail: 732 Byte Python für root auf allen Linux-Distributionen

Ein Python-Skript. 732 Byte. Keine Race Condition, keine Kernel-Offsets, keine Distribution-spezifische Anpassungen. Dasselbe Skript rootet Ubuntu, Amazon Linux, RHEL und SUSE. Betroffen: alle Linux-Distributionen seit 2017.

Was Copy Fail kann

CVE-2026-31431, CVSS 7.8, von den Entdeckern „Copy Fail" getauft. Die Schwachstelle liegt im Krypto-Subsystem des Linux-Kernels, speziell im algif_aead-Modul. Der Fehler wurde 2017 in einem Commit eingeführt.

Was das Skript tut: Es öffnet einen AF_ALG-Socket, bindet an authencesn(hmac(sha256),cbc(aes)), konstruiert eine Shellcode-Payload, schreibt 4 kontrollierte Bytes in den Page-Cache von /usr/bin/su und startet dann /usr/bin/su. Root-Rechte. Fertig.

Warum das besonders gefährlich ist

Drei Eigenschaften machen Copy Fail einzigartig:

Portabel. Dasselbe Skript funktioniert auf allen getesteten Distributionen. Keine Offsets, keine Anpassungen. Ubuntu 24.04 LTS mit Kernel 6.17, Amazon Linux 2023 mit Kernel 6.18, RHEL 10.1 mit Kernel 6.12, SUSE 16 mit Kernel 6.12.

Stealthy. Der Kernel markiert die manipulierte Page nicht als „Dirty" zum Rückschreiben. Die Datei bleibt auf dem Datenträger unverändert. Einfache Checksummen-Prüfungen bekommen nichts mit. Beim Dateizugriff greift der Kernel aber auf den manipulierten Page-Cache zurück.

Cross-Container. Der Page-Cache wird auf dem Host geteilt. Das bedeutet: Ein Angreifer in einem Container kann den Page-Cache von Dateien auf dem Host manipulieren. Container-Sandboxing wird umgangen.

Ähnlichkeit zu Dirty Pipe

Copy Fail erinnert an Dirty Pipe (CVE-2022-0847), eine ähnliche Schwachstelle, die ebenfalls über splice() in den Page-Cache schrieb. Die Entdecker bestätigen: „Copy Fail ist dieselbe Klasse von Primitive, in einem anderen Subsystem."

Die Kombination aus Portabilität, Minimalismus, Stealthiness und Container-Escape macht Copy Fail besonders. Vier Eigenschaften, die selten zusammen auftreten.

Timeline

Die Entdecker meldeten die Schwachstelle am 23. März 2026. Zwei Tage später wurden Patches vorgeschlagen, am 1. April in den Mainline-Kernel committet. Die CVE wurde am 22. April zugewiesen, die öffentliche Disclosure folgte am 29. April, nachdem Distributionen Zeit für Patches hatten.

Die Schwachstelle wurde mit Xint Code, einem KI-Werkzeug für Sicherheitsforschung, entdeckt. Nicht das erste Mal, dass eine KI eine kritische Kernel-Schwachstelle aufspürt.

Die Community-Reaktion

Die Diskussion auf Hacker News und Reddit zeigt ein gespaltenes Bild. Ein Kernel-Entwickler, der am Kryptografie-Code des Linux-Kernels arbeitet, schrieb: AF_ALG hätte nie existieren sollen. Es sei zu komplex, biete eine massive Angriffsfläche für unprivilegierte Programme und sei fast vollständig unnötig. Userspace habe seinen eigenen Kryptografie-Code.

Seine Empfehlung: Alle CONFIG_CRYPTO_USER_API_*-Optionen im Kernel deaktivieren. Das hätte diesen Bug und jeden vergangenen und künftigen AF_ALG-Bug unausnutzbar gemacht.

Das Algorithmus-Modul authencesn sei ein IPsec-Implementierungsdetail, das niemals als allgemeine Schnittstelle an den Userspace hätte exponiert werden sollen.

RHEL stuft die Schwachstelle nur als “Moderate” ein und hat den Fix auf “deferred” gesetzt. Ubuntu hat zum Zeitpunkt der Veröffentlichung noch keinen Patch. Das zeigt: Selbst nach der Disclosure reagieren nicht alle Distributionen mit der gleichen Dringlichkeit. Wer wartet, lässt ein 732-Byte-Root-Exploit offen.

Was das für Linux-Betreiber bedeutet

Patches sind von den großen Distributionen verfügbar. Ubuntu, Amazon Linux, RHEL, SUSE, Debian haben alle Advisories veröffentlicht.

Als temporäre Gegenmaßnahme kann das algif_aead-Modul blockiert werden:

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf && rmmod algif_aead 2>/dev/null

Wer das nicht macht und noch keinen Kernel-Patch installiert hat, hat ein Problem. 732 Byte Python, und jeder lokale Nutzer wird root. Das ist kein theoretisches Szenario. Das ist ein deterministischer Exploit.

Wer Ubuntu 24.04 oder 22.04 betreibt: Jetzt patchen oder das Modul blockieren. Nicht morgen.


Quellen: