Skip to content
KitploitKITPLOIT
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/ikow/cve-2026-31431-live-code-corruption
Privilege EscalationExploit-FrameworksSchwachstellenanalyseExploitationBinary-Exploitation
GitHubikow/cve-2026-31431-live-code-corruption

CVE-2026-31431-live-code-corruption

CVE-2026-31431 (Copy Fail) neuartiger Exploit: Live-Code-Korruption über den Page Cache. Überschreibt den libc-exit()-Code durch MAP_PRIVATE-Seitenteilung – betrifft ALLE laufenden Prozesse.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
1vor 3 MonatenNoch nicht geprüft

CVE-2026-31431 — Live-Code-Korruption über den Page Cache

Eine neuartige Exploitation-Technik für CVE-2026-31431 („Copy Fail"), die ausführbaren Code laufender Prozesse über den Page Cache des Linux-Kernels korrumpiert und so eine Root-Privilegieneskalation erreicht.

Was anders ist

Alle veröffentlichten Exploits für diese CVE korrumpieren Datendateien — sie modifizieren /etc/passwd, um die UID von root zu ändern, oder patchen setuid-Binaries auf der Festplatte. Dieser Exploit tut etwas grundlegend anderes: Er korrumpiert lebenden ausführbaren Code im Speicher über den Page-Cache-Mechanismus des Kernels.

Veröffentlichte ExploitsDieser Exploit
ZielDatendateien (/etc/passwd, /usr/bin/su)Ausführbarer Code (libc .text-Sektion)
MechanismusDateiinhalt, der von Programmen geparst wirdCodeseiten, die direkt von der CPU ausgeführt werden
UmfangEinzelne DateiALLE Prozesse, die libc mappen
Änderung auf der FestplatteJa (Dateiinhalt modifiziert)Nein (nur Page Cache im Speicher)
ErkennungDateiintegritätsüberwachungUnsichtbar für Dateisystemprüfungen

So funktioniert es

Die Page-Cache-Erkenntnis

Wenn Linux eine gemeinsame Bibliothek mit MAP_PRIVATE mappt, kopiert es die Dateiseiten nicht sofort. Stattdessen zeigen die Seitentabelleneinträge des Prozesses direkt auf die Page-Cache-physischen Seiten. Die Kopie erfolgt erst beim Schreiben (Copy-on-Write). Für Codeseiten (.text) schreiben Prozesse nie darauf — sie bleiben also für immer mit dem Page Cache geteilt.

root@kitploit:~
Process A (bash)     Process B (su)      Page Cache (libc)
  ┌──────┐            ┌──────┐            ┌──────────┐
  │ PTE  │───────────>│      │            │ exit():  │
  │      │            │ PTE  │───────────>│ endbr64  │
  └──────┘            └──────┘            │ push rax │
    MAP_PRIVATE         MAP_PRIVATE       │ ...      │
    (clean page)        (clean page)      └──────────┘
                                               ↑
                                    Copy Fail schreibt hier!

CVE-2026-31431 gibt uns einen kontrollierten 4-Byte-Schreibzugriff auf den Page Cache jeder lesbaren Datei. Durch die Korrumpierung der Codeseiten von libc modifizieren wir die Instruktionen, die jeder Prozess ausführt.

Der Exploit

  1. Shellcode schreiben (39 Bytes) an die Position der on_exit()-Funktion im Page Cache von libc — 10 Schreibvorgänge à 4 Bytes
  2. exit() patchen, um zu unserem Shellcode zu springen — 1 Schreibvorgang von 4 Bytes
  3. Auslöser: Jedes Programm, das exit() aufruft (praktisch jedes Programm), führt unseren Shellcode aus

Der Shellcode führt setuid(0) → setgid(0) → execve("/bin/sh") aus und liefert so eine Root-Shell.

CVE-2026-31431 Übersicht

  • Bug: Logikfehler in crypto/algif_aead.c — die In-Place-Optimierung von 2017 (72548b093ee3) erlaubt es splice(), Page-Cache-Seiten in die AEAD-Entschlüsselung einzuspeisen. Die ESN-Umordnung des authencesn-Algorithmus schreibt 4 Scratch-Bytes zurück in die Quell-Scatterlist und korrumpiert so den Page Cache der gespleißten Datei.
  • Primitive: Deterministischer 4-Byte-Schreibzugriff auf den Page Cache jeder lesbaren Datei
  • Anforderungen: Keine — AF_ALG-Sockets sind für unprivilegierte Benutzer verfügbar
  • Fix: Kopie in einen Out-of-Place-Puffer vor der Krypto-Operation (Kernel 6.12.85+, 6.15+)

Verwendung

root@kitploit:~
# Kompilieren
gcc -o exploit exploit.c

# Als unprivilegierter Benutzer ausführen
./exploit /lib/x86_64-linux-gnu/libc-2.31.so

# Auslösen — beliebiges Programm ausführen (es ruft exit() auf)
su -c id
# uid=0(root) gid=0(root) groups=0(root)

Getestet auf

  • Kernel: 6.12.79 (Ubuntu/Debian, vor dem Fix in 6.12.85)
  • glibc: 2.31-0ubuntu9.7
  • Ergebnis: Vollständige Root-Shell, verifiziert durch das Kernel-Log: process 'id' launched '/bin/sh'

Dateien

  • exploit.c — Vollständiger Exploit mit Shellcode-Injektion
  • copyfail_test.c — Primitive-Verifizierung (testet 4-Byte-Schreibzugriff)

Zeitplan

  • 2017: In-Place-Optimierung eingeführt (72548b093ee3)
  • 2026-04-29: CVE-2026-31431 offengelegt
  • 2026-04-30: Fix in Kernel 6.12.85 veröffentlicht
  • 2026-05-06: Dieser Exploit entwickelt (neuartige Live-Code-Korruptionstechnik)

Referenzen

  • NVD — CVE-2026-31431
  • Fix-Commit
  • Copy-Fail-Analyse (Xint)

Haftungsausschluss

Dieses Tool wird ausschließlich für autorisierte Sicherheitsforschung und Bildungszwecke bereitgestellt. Verwenden Sie es nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testgenehmigung haben.

Verwandt: Dirty Frag (7. Mai 2026)

Dirty Frag hat zwei weitere Page-Cache-Schreibvarianten in derselben Bug-Klasse offengelegt:

  • ESP-Pfad (esp4/esp6): Dieselbe authencesn-Senke wie Copy Fail, erreichbar über IPsec-ESP-in-UDP. Erfordert Benutzer-Namespaces. 4-Byte-Schreibzugriff.
  • RxRPC-Pfad (rxrpc/rxkad): pcbc(fcrypt) In-Place-Entschlüsselung auf Splice-gepinnten Seiten. Keine Namespaces erforderlich. 8-Byte-Schreibzugriff.

Die Live-Code-Korruptionstechnik in diesem Repository funktioniert mit jeder dieser Page-Cache-Schreibprimitive — ersetzen Sie einfach die write4()-Funktion durch den ESP- oder RxRPC-Auslöser. Die Technik ist primitiv-agnostisch.

Tool herunterladen