Copy Fail

Copy Fail

Kritisch Publiziert: 29. April 2026 Linux Kernel
Hohe Kritikalität: Copy Fail (CVE-2026-31431) ist eine hochkritische lokale Rechteausweitungslücke im Linux-Kernel, die seit Juli 2017 nahezu alle gängigen Distributionen betrifft. Ein Angreifer kann mit einem 732 Byte kleinen Python-Script zuverlässig Root-Rechte erlangen.

Übersicht

CVE CVE-2026-31431
Veröffentlicht 29. April 2026
Entdecker Taeyang Lee (Theori) / Xint Code Research Team
Typ Lokale Rechteausweitung (LPE)
CVSS 7.8 (High)
Betroffen Linux Kernel 4.14 – 6.19.12 (seit Juli 2017)

Was macht die Lücke so gefährlich?

Copy Fail ist eine deterministische Logikschwachstelle – sie benötigt kein Timing-Glück, keine Race Condition und keine kernel-spezifischen Offsets. Ein Angreifer mit einem normalen lokalen Benutzeraccount kann mit einem einzigen 732 Byte kleinen Python-Script zuverlässig Root-Rechte erlangen.

Die Lücke befindet sich im Kernel-Crypto-Subsystem, genauer im Modul algif_aead der AF_ALG-Userspace-Schnittstelle. Eine In-Place-Optimierung aus dem Jahr 2017 (Commit 72548b093ee3) führt dazu, dass bei AEAD-Verschlüsselungsoperationen Source- und Destination-Buffer über eine gemeinsame Scatterlist verknüpft werden.

Wie funktioniert der Angriff?

Der Angriff kombiniert drei Komponenten:

  1. AF_ALG-Socket – Öffnet einen Socket zum Kernel-Crypto-API (authencesn-Algorithmus).
  2. splice() – Hängt Page-Cache-Seiten einer lesbaren Datei (z. B. /usr/bin/su) in den Crypto-Pfad ein, ohne Daten zu kopieren.
  3. recvmsg() – Triggert die Ver-/Entschlüsselung. Der authencesn-Algorithmus nutzt dabei den Destination-Buffer als Scratchpad und schreibt 4 kontrollierte Bytes über den eigentlichen Output-Bereich hinaus – direkt in den Page-Cache der Datei.

Da der Page-Cache systemweit geteilt wird, liegt danach eine manipulierte Version der Datei im RAM, während die Datei auf der Festplatte unverändert bleibt. Führt nun ein Prozess die manipulierte Binary aus, läuft der eingeschleuste Code mit Root-Rechten. File-Integrity-Monitoring auf Disk-Ebene bemerkt den Angriff nicht.

Container-Escape

Weil der Kernel-Page-Cache über Container-Grenzen hinweg geteilt wird, funktioniert Copy Fail auch als Container-Escape-Primitive. Ein kompromittierter Container ohne besondere Rechte kann den Page-Cache eines Host-Binaries manipulieren und so den kompletten Knoten übernehmen – einschließlich Kubernetes-Nodes.

Betroffene Systeme

Fast alle großen Distributionen sind betroffen, darunter:

Distribution Status
Ubuntu (alle vor 26.04) Verwundbar
Red Hat Enterprise Linux / Fedora / CentOS / AlmaLinux Verwundbar
Debian Verwundbar
SUSE / openSUSE Verwundbar
Amazon Linux 2023 Verwundbar
Arch Linux Verwundbar

Aktive Ausnutzung

Laut CISA und Threat-Intelligence-Berichten wurde die Schwachstelle ab 1. Mai 2026 aktiv in freier Wildbahn ausgenutzt.

Was kann man tun?

1. Kernel patchen (empfohlen)

Der Upstream-Fix (Commit a664bf3d603d) revertiert die fehlerhafte Optimierung. Gepatchte Kernel-Versionen sind:

  • Linux 7.0
  • 6.19.12
  • 6.18.22

Distributionen wie AlmaLinux, Ubuntu, Debian und SUSE haben mittlerweile gepatchte Pakete veröffentlicht.

2. Sofort-Mitigation: Modul deaktivieren

Falls kein Patch verfügbar ist, kann das algif_aead-Modul blockiert werden. Das beeinträchtigt die meisten Systeme nicht, da Anwendungen auf Userspace-Crypto-Bibliotheken zurückfallen:

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead

3. Zusätzliche Härtung

  • In Container-Umgebungen (Kubernetes, CI/CD) AF_ALG-Socket-Erstellung per seccomp oder AppArmor/SELinux einschränken.
  • Container-Workloads als potenziell kompromittiert behandeln und Nodes bei Verdacht recyceln.

Einordnung

Copy Fail steht in einer Reihe mit Dirty COWDirty Pipe und dem kürzlich folgenden Dirty Frag. Es ist eine der schwerwiegendsten Linux-LPEs der letzten Jahre, weil es trivial auszunutzen, hochgradig portabel und nahezu lautlos ist. Selbst Systeme, die gegen Copy Fail gepatcht sind, können weiterhin gegen Dirty Frag (CVE-2026-43284 / CVE-2026-43500) anfällig bleiben, da dies eine erweiterte Bug-Klasse nutzt.