
Bash-Skripte zur Erkennung und Abschwächung von CVE-2026-31431 (Copy Fail), einer lokalen Privilegieneskalation im Linux-Kernel über AF_ALG-Sockets, einschließlich Deaktivierung des Moduls und seccomp-Konfiguration.
Dieses Projekt stellt eine Reihe von Bash-Skripten zur Erkennung und Minderung der CVE-2026-31431 (auch bekannt als "Copy Fail") Linux-Kernel-Schwachstelle zur lokalen Rechteausweitung bereit.
a664bf3d603d und spätere PatchesDie Schwachstelle existiert in der AF_ALG-Socket-Implementierung des Linux-Kernels. Angreifer können durch die Konstruktion spezifischer authencesn-Bind-Operationen eine lokale Rechteausweitung erreichen.
| Datei | Zweck | Ausführungsberechtigung |
|---|---|---|
check_cve_2026_31431.sh | Erkennung der Schwachstellenauswirkung und Risikobewertung | Normaler Benutzer oder root |
cve-2026-31431-mitigate.sh | Durchführung von Minderungsmaßnahmen (Modul deaktivieren, seccomp-Konfiguration generieren) | root erforderlich |
bash check_cve_2026_31431.sh
Das Skript prüft nacheinander Folgendes:
CONFIG_CRYPTO_USER_API_AEADalgif_aead / af_algauthencesn-Bind-Validierung (zur Feststellung, ob bereits gemindert wurde)Die endgültige Ausgabe enthält die Gesamtrisikostufe: UNKNOWN / LOW / MEDIUM / HIGH.
Hinweis: Das Minderungsskript erfordert root-Berechtigungen.
sudo bash cve-2026-31431-mitigate.sh
Die Minderungsmaßnahmen umfassen:
/etc/modprobe.d/disable-algif-aead.conf, um das Laden des Moduls algif_aead zu verbietenalgif_aead bereits geladen ist, Versuch des Entladens (rmmod)depmod -a zur Aktualisierung der Modulabhängigkeitensudo bash cve-2026-31431-mitigate.sh --verify-only # Nur validieren, keine Konfiguration schreiben
sudo bash cve-2026-31431-mitigate.sh --write-seccomp # Zusätzlich Docker-seccomp-Konfiguration generieren
sudo bash cve-2026-31431-mitigate.sh --seccomp-path /path # Ausgabepfad für seccomp angeben
Der Goldstandard zur Feststellung, ob die Minderung wirksam ist: authencesn-Bind schlägt fehl.
Im Erkennungsskript versucht "Prüfpunkt 5: Minderungsvalidierung (bind authencesn)" Folgendes auszuführen:
import socket
s = socket.socket(38, 5, 0) # AF_ALG
s.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))
CONFIG_CRYPTO_USER_API_AEAD=y (statisch in den Kernel kompiliert) ist, ist die Moduldeaktivierung in der Regel wirkungslos; nur ein Kernel-Upgrade hilft.algif_aead gerade verwendet wird, kann rmmod fehlschlagen. Es wird empfohlen, nach einem Neustart im Wartungsfenster zu validieren.socket(AF_ALG)-Aufrufe zu blockieren.a664bf3d603d und spätere Patches enthält.Die Skripte wurden in den folgenden Umgebungen getestet:
grep, sed, lsmod, modprobe, rmmod, depmod)python3 oder python (für AF_ALG-Socket-Validierung)MIT License
Die in diesem Projekt bereitgestellten Skripte dienen ausschließlich der Sicherheitserkennung und vorübergehenden Minderung und können ein offizielles Kernel-Patch-Upgrade nicht ersetzen. Verstehen Sie die Vorgänge (z. B. Deaktivierung von Kernel-Modulen) vollständig, bevor Sie dieses Skript verwenden, und validieren Sie es zunächst in einer Testumgebung. Der Autor übernimmt keine Haftung für direkte oder indirekte Verluste, die durch die Verwendung dieses Tools entstehen.