
SSH-Posture-Hilfsprogramm für CVE-2026-31431 (Copy Fail): Kernel- und algif_aead-Inventar
Bash-Helfer: entdeckt Hosts (optional CIDR über nmap), führt dann SSH-Read-only-Prüfungen für CVE-2026-31431 (Copy Fail / algif_aead), CVE-2026-31677 / CVE-2026-43077 (AF_ALG-RX-Heuristiken), CVE-2026-23111 (nftables + Benutzernamespaces), CVE-2026-23102 (arm64 SVE/SME) durch. Nur Heuristiken — kein Exploit; mit Ihrem Distributor bestätigen.
Als sensibel behandeln: Passwortdatei auf der Platte; Ausgabe listet Hosts und Kernel-Status auf.
| Komponente | Wann |
|---|---|
bash, ssh, sshpass | Immer |
nmap | CIDR-Ziele: erforderlich für nmap -sn -PS22. Mit COPYFAIL_PREAUTH_NMAP=1 (Standard) zusätzlich nmap -p22 -sV pro Host nach dem SSH-Banner — langsamer, hilft aber macOS/Windows zu erkennen. Setzen Sie COPYFAIL_PREAUTH_NMAP=0, um das nmap pro Host zu überspringen (Sie benötigen nmap weiterhin für einen CIDR-Sweep). |
sudo cp copyfail-creds.example /etc/copyfail-creds && sudo nano /etc/copyfail-credsuser:password (nur der erste : trennt Benutzer von Passwort).600 erforderlich: sudo chmod 600 /etc/copyfail-credssudo aus (oder chown auf Ihren Benutzer, weiterhin 600).CREDS_FILE=/path/to/creds ./copyfail_scan.sh [TARGET]
TARGET: CIDR, einzelne IP/Hostname oder Pfad zu einer Hostliste (#-Kommentare ok). Wenn kein Ziel angegeben ist, wird die Skript-Standardeinstellung verwendet (siehe TARGET= in copyfail_scan.sh).
chmod +x copyfail_scan.sh
sudo CREDS_FILE=/etc/copyfail-creds ./copyfail_scan.sh
sudo CREDS_FILE=/etc/copyfail-creds ./copyfail_scan.sh 192.168.1.0/24
CREDS_FILE=~/creds ./copyfail_scan.sh ./hosts.txt
Ausgabe: nur stdout (keine Berichtsdatei). Zum Speichern tee verwenden. Nach den Zeilen pro Host: === Summary report === (sofern nicht COPYFAIL_SUMMARY=0) — Bestätigt gut gegenüber Zu prüfen; Hosts mit derselben Zusammenfassungszeile werden zusammengeführt (kommagetrennte Beschriftungen).
# Example: no per-host nmap, sequential
COPYFAIL_PREAUTH_NMAP=0 COPYFAIL_PARALLEL=1 sudo ./copyfail_scan.sh 192.168.54.93
31431 PATCHED, 31431 VULN - MITIGATED, 31431 NO algif_aead - VERIFY, [SKIP] / [SKIP - PRE-AUTH] sind Skript-Heuristiken; 23111= / 23102= Endfelder fassen nftables/Benutzernamespace- und arm64-SVE-Sonden zusammen.*-pve / Hersteller-Kernel: uname -r stimmt möglicherweise nicht mit den Upstream-NVD-Tupeln überein — verwenden Sie Distro-/Proxmox-Sicherheitshinweise und installierte Kernel-Pakete, nicht dieses Skript allein.echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif.conf && sudo rmmod algif_aead 2>/dev/nullMIT — siehe LICENSE.
| Variable | Standard | Rolle |
|---|
CREDS_FILE | /etc/copyfail-creds | user:password-Datei |
COPYFAIL_PREAUTH | 1 | TCP/22-SSH-Banner; offensichtliches Nicht-Linux vor dem Login überspringen |
COPYFAIL_PREAUTH_NMAP | 1 | Zusätzliches nmap -p22 -sV, wenn das Banner nicht eindeutig ist (langsamer) |
COPYFAIL_PREAUTH_VERBOSE | 0 | 1 = abgeschnittenes Banner bei Pre-Auth-Überspringungen anzeigen |
COPYFAIL_PARALLEL | 24 | Max. gleichzeitige Sonden (1 = sequenziell) |
COPYFAIL_ORDERED_OUTPUT | 1 | Bei Parallelverarbeitung Zeilen in Sondenreihenfolge puffern (0 = verschachtelt) |
COPYFAIL_PTR_LOOKUP | 1 | IPv4-Reverse-DNS über getent, wenn nmap/Liste keinen Namen hat |
COPYFAIL_SUMMARY | 1 | Gruppierte Abschlusszusammenfassung ausgeben (0 = überspringen) |
COPYFAIL_BANNER_TIMEOUT | 3 | Sekunden auf SSH-Identifikation auf Port 22 warten |
COPYFAIL_SSH_CONNECT_TIMEOUT | 3 | ssh ConnectTimeout (Sekunden) |
COPYFAIL_NO_BANNER_SKIP_SSH | 1 | Wenn Pre-Auth kein Banner sieht, SSH-Versuch überspringen (0, falls Banner sehr langsam sind) |