
Passives Diagnosewerkzeug, das prüft, ob ein Linux-System anfällig für CVE-2026-31431 ist, indem es die Erreichbarkeit von AF_ALG-Sockets testet, mit Hinweisen zur Schadensbegrenzung und CI-freundlichen Exit-Codes.
Ein einfaches, sicheres Python-Skript, das feststellt, ob ein Linux-System anfällig für CVE-2026-31431 („Copy Fail“) ist, eine lokale Privilegieneskalation, die alle gängigen Distributionen seit Kernel 4.14 betrifft.
CVE-2026-31431 ist ein logischer Bug in gerader Linie im kryptografischen Socket-Modul algif_aead des Linux-Kernels. Durch die Verwendung von AF_ALG-Sockets in Kombination mit splice() kann ein nicht privilegierter Angreifer 4 Bytes im Page-Cache einer setuid-Binärdatei überschreiben und Root-Rechte erlangen.
| Eigenschaft | Detail |
|---|
| Race Condition erforderlich | ❌ Nein – die Ausnutzung ist deterministisch |
| Kernel-Offsets erforderlich | ❌ Nein – keine versionsspezifischen Offsets nötig |
| Exploit-Komplexität | Ein einzelnes 732-Byte-Python-Skript reicht für Root aus |
| Dieser Prüfer | Nur passive Diagnose – löst die Schwachstelle nicht aus |
Das Skript versucht, einen AF_ALG-Socket mit genau der Algorithmus-Vorlage zu erstellen und zu binden, auf die sich die Schwachstelle stützt:
authencesn(hmac(sha256),cbc(aes))
| Ergebnis | Bedeutung |
|---|---|
| Socket erstellt und gebunden | Verwundbarer Codepfad ist erreichbar – sofort patchen |
EAFNOSUPPORT (errno 97) | Modul nicht geladen – Angriffsfläche nicht verfügbar |
Permission denied | MAC-Richtlinie (SELinux/AppArmor) blockiert den Zugriff – sicher |
Das Skript löst die Schwachstelle in keiner Weise aus. Es ist vollständig passiv und sicher auszuführen.
Klonen Sie das Repository oder laden Sie check_copyfail.py herunter und führen Sie dann aus:
python3 check_copyfail.py
____ _____ _ _
/ ___|___ _ __ _ _| ___|_ _(_) |
| | / _ \| '_ \| | | | |_ / _` | | |
| |__| (_) | |_) | |_| | _| (_| | | |
\____\___/| .__/ \__, |_| \__,_|_|_|
|_| |___/
CVE-2026-31431 „Copy Fail“ – Erreichbarkeitsprüfer
Phalanx CCS / d_0_4 | Nur für defensive Zwecke
-------------------------------------------------------
Kernel-Version: 6.1.0-28-amd64
Versionsbereich: Potenziell betroffener Bereich
AF_ALG-Ziel: authencesn(hmac(sha256),cbc(aes))
[!!!] VERWUNDBARE ANGRIFFSFLÄCHE ERREICHBAR
Socket erstellt und gebunden – AF_ALG erreichbar
Sofortige Gegenmaßnahme:
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
Aktualisieren Sie dann Ihren Kernel, sobald Patches verfügbar sind.
Upstream-Fix: Commit a664bf3d603d
Das Skript beendet sich mit dem Code 1, wenn die Angriffsfläche erreichbar ist, und mit 0, wenn das System sicher ist – damit eignet es sich für den Einsatz in Shell-Skripten, Ansible-Playbooks und CI-Pipelines.
Bis ein Kernel-Update verfügbar ist, deaktivieren Sie das verwundbare Modul:
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
Der offizielle Fix ist der Commit a664bf3d603d im Mainline-Kernel. Aktualisieren Sie über den Paketmanager Ihrer Distribution, sobald Patches verfügbar sind.
Dieser Prüfer meldet auf modernen Android-Geräten (einschließlich Termux) immer „sicher“. Der AF_ALG-Socket ist für nicht privilegierte Apps aufgrund verbindlicher SELinux-Richtlinien nicht verfügbar, sodass die Schwachstelle auf Standard-Android-Builds nicht ausnutzbar ist.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe LICENSE für Details. Sie können es frei verwenden, modifizieren und weiterverbreiten.
Haftungsausschluss: Dieses Tool dient ausschließlich defensiven Diagnosezwecken.
Verwenden Sie es nicht auf Systemen, die Ihnen nicht gehören, oder ohne ausdrückliche schriftliche Genehmigung.