Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CopyFail-Exploits-CVE-2026-31431 — Mehrsprachige pädagogische Exploit-Implementierungen für CVE-2026-31431, eine lokale Privilegieneskalation im Linux-Kernel über das algif_aead-Modul, mit einem sicheren Detektor und CTF-Nutzungsanleitung. | Kitploit
Tools/GitHubGitHub/shotafry/copyfail-exploits-cve-2026-31431
Privilege EscalationExploit-FrameworksExploitationCTFLernen & BildungBinary-ExploitationLabs & Praxis
GitHubshotafry/copyfail-exploits-cve-2026-31431

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CopyFail-Exploits-CVE-2026-31431

Mehrsprachige pädagogische Exploit-Implementierungen für CVE-2026-31431, eine lokale Privilegieneskalation im Linux-Kernel über das algif_aead-Modul, mit einem sicheren Detektor und CTF-Nutzungsanleitung.

Repository anzeigen
721vor 5 MonatenNoch nicht geprüft

CVE-2026-31431 — Copy Fail

Lehr-Repository mit Implementierungen des Copy-Fail-Exploits in mehreren Sprachen.
Erstellt und gepflegt von @shotafry — denn das Lesen des CVE reicht nicht. Man muss es reproduzieren.


📖 Read this in English


Inhaltsverzeichnis

  • Was ist Copy Fail?
  • Wer hat es entdeckt?
  • Schweregrad und CVSS
  • Wie funktioniert es?
  • Voraussetzungen
  • Verfügbare Implementierungen
  • Verwendung nach Sprache
  • Systemüberprüfung
  • Was passiert genau beim Ausführen?
  • Einsatz in CTFs und Testumgebungen
  • Verschleierung — stille Varianten
  • Mitigation und Patch
  • Repository-Struktur
  • Rechtlicher Hinweis

Was ist Copy Fail?

Copy Fail ist eine lokale Privilegieneskalations-Schwachstelle (LPE) im Linux-Kernel, katalogisiert als CVE-2026-31431. Sie betrifft das kryptografische Subsystem des Kernels, konkret das Modul algif_aead, das authentifizierte Verschlüsselungsoperationen (AEAD) über AF_ALG-Sockets verwaltet.

Der Fehler wurde 2017 in einer Optimierung des Moduls authencesn eingeführt und blieb fast 9 Jahre lang unentdeckt — vorhanden in praktisch allen modernen Linux-Distributionen.

Was Copy Fail im Vergleich zu anderen historischen LPEs besonders macht:

EigenschaftCopy FailTypischer LPE
Benötigt Race Condition❌ Nein✅ Ja
Benötigt spezifischen Kernel-Offset❌ Nein✅ Ja
Funktioniert auf allen Distros✅ Ja❌ Normalerweise nicht
Zuverlässigkeit100 % deterministischVariabel
Modifiziert den Datenträger❌ Nein (nur RAM)Kommt darauf an

Wer hat es entdeckt?

Die Schwachstelle wurde von Taeyang Lee vom Forschungsteam von Theori entdeckt. Die vollständige Exploit-Kette wurde vom Team Xint Code Research entwickelt, das den Prozess mithilfe von KI-gestützter Analyse des crypto/-Subsystems des Linux-Kernels dokumentierte.

Die öffentliche Offenlegung umfasst funktionalen PoC, vollständige technische Analyse und Dokumentation auf copy.fail.


Schweregrad und CVSS

CVE:       CVE-2026-31431
CVSS:      7.8 — HOCH
Vektor:    Lokal
Auswirkung: Vollständige Privilegieneskalation (root)
Distros:   Alle Linux-Distributionen mit Kernel >= 2017 ohne Patch

Der CVSS-Wert beträgt 7.8 und erreicht nur deshalb nicht kritisch (9+), weil vorheriger lokaler Zugriff erforderlich ist — der Angreifer muss bereits eine Sitzung auf dem System haben. In Cloud-Umgebungen und mit Docker-Containern ist diese Anforderung erheblich einfacher zu erfüllen, als es scheint.


Wie funktioniert es?

Der Page Cache des Kernels

Der Linux-Kernel speichert kürzlich gelesene Dateien im RAM. Dies nennt man Page Cache. Wenn ein Prozess /etc/passwd liest, geht der Kernel nicht auf den Datenträger — er liefert die Kopie aus dem RAM. Das ist schneller, schafft aber eine Angriffsfläche: Wenn du diese Kopie im RAM ändern kannst, ohne den Datenträger zu berühren, sieht das System gefälschte Daten.

Der Bug in algif_aead

Das Modul algif_aead ermöglicht AEAD-Operationen aus dem Userspace über AF_ALG-Sockets. Der Bug liegt in der 2017 eingeführten Optimierung: Wenn splice() verwendet wird, um Seiten einer Datei an den Socket zu übergeben, landen diese Seiten des Page Cache in der Ziel-Scatterlist (beschreibbar) der kryptografischen Operation.

Ergebnis: Jeder Benutzer ohne Privilegien kann 4 kontrollierte Bytes in jede Datei schreiben, die er lesen kann, ohne den Datenträger zu berühren.

Der Exploit-Ablauf

Benutzer ohne Privilegien
        │
        ▼
  Öffnet AF_ALG-Socket (authencesn)
        │
        ▼
  sendmsg() — AEAD-Parameter mit unseren 4 Bytes in seqno_lo
        │
        ▼
  splice() — Datei → Pipe → Socket op
  [BUG] Der Page Cache der Datei landet in der Ziel-Scatterlist
        │
        ▼
  recv() löst die AEAD-Operation aus
  Die Auth schlägt fehl (EBADMSG), aber der Scratch-Write ist bereits passiert
        │
        ▼
  /etc/passwd (Page Cache) sagt jetzt: Benutzer → UID 0
        │
        ▼
  su <benutzer> → PAM validiert echtes Passwort → setuid(0) → ROOT

Einfache Analogie

Stell dir vor, der Kernel hat ein Schlossregister (/etc/passwd). Copy Fail ist, als würdest du entdecken, dass das Schlossregister versehentlich auf deinem Arbeitstisch liegen bleibt, wenn du die Magiewerkstatt des Schlosses in einer ganz bestimmten Reihenfolge öffnest — und du kannst deinen Rang von „einfacher Soldat" zu „König" mit einem Stift ändern. Der Archivar (PAM) prüft dein Passwort, prüft aber nicht das Originalregister, sondern nur die Kopie vor dir. Du bist König.

Was passiert genau beim Ausführen?

passwd ändert sich in Echtzeit

Verfügbare Implementierungen


Voraussetzungen

Vom Zielsystem

  • Linux-Kernel >= ~2017 ohne den Patch für CVE-2026-31431
  • Modul algif_aead verfügbar und ladbar
  • 4-stellige UID (1000–9999) — Standard auf allen Distros

Schnelle Überprüfung

Das kann man eigentlich überspringen und direkt einen der Exploits testen, aber es ist auch gültig, wenn wir kein Risiko eingehen wollen, sie hochzuladen oder zu erstellen, und nur sehen wollen, ob es funktioniert — aber die Exploits haben ihre eigene Funktion, um zu prüfen, ob das betreffende System verwundbar ist.

# Kernel-Version anzeigen
uname -a

# Prüfen, ob der Algorithmus verfügbar ist
grep -i authencesn /proc/crypto

# Prüfen, ob das Modul geladen ist
lsmod | grep alg

Wenn grep -i authencesn /proc/crypto authencesn(hmac(sha256),cbc(aes)) zurückgibt, ist das System verwundbar.

Nach Sprache

SpracheAnforderung am ZielVorherige Kompilierung
CKeine (statisches Binär)gcc auf der Kompilierungsmaschine
PythonPython 3.10+Nein
RustKeine (statisches Binär)rustc auf der Kompilierungsmaschine
GoKeine (statisches Binär)go auf der Kompilierungsmaschine
RubyRuby + Gem fiddle (standardmäßig enthalten)Nein
PerlPerl 5 (praktisch auf jedem Linux enthalten)Nein

Verfügbare Implementierungen

Dieses Repository enthält den Exploit in 6 Sprachen, alle funktional äquivalent, mit pädagogischen Kommentaren auf Spanisch.

copy_fail_exploit.c      → C         — statisches Binär, null Abhängigkeiten
copy_fail_exploit.py     → Python    — besser lesbar, ideal zum Lernen
copy_fail_exploit.rs     → Rust      — die Ironie: „sichere" Sprache explodiert Kernel
copy_fail_exploit.go     → Go        — statisches Binär, sehr portabel
copy_fail_exploit.rb     → Ruby      — allgegenwärtig auf Rails-Servern
copy_fail_exploit.pl     → Perl      — der leiseste, auf jedem Linux vorhanden
test_cve_2026_31431.py   → Detektor  — prüft Verwundbarkeit, ohne etwas zu explodieren

Verwendung nach Sprache

Tool herunterladen