
Aide à la posture SSH pour CVE-2026-31431 (Copy Fail): inventaire du noyau et d'algif_aead
Assistant Bash : découvrir des hôtes (optionnel CIDR via nmap), puis des vérifications SSH en lecture seule pour CVE-2026-31431 (Copy Fail / algif_aead), CVE-2026-31677 / CVE-2026-43077 (heuristiques AF_ALG RX), CVE-2026-23111 (nftables + espaces de noms utilisateur), CVE-2026-23102 (arm64 SVE/SME). Heuristiques uniquement — pas un exploit ; confirmez auprès de votre distributeur.
Traiter comme sensible : fichier de mots de passe sur le disque ; la sortie liste les hôtes et la posture du noyau.
| Composant | Quand |
|---|---|
bash, ssh, sshpass | Toujours |
nmap | Cibles CIDR : requis pour nmap -sn -PS22. Avec COPYFAIL_PREAUTH_NMAP=1 (par défaut), aussi nmap -p22 -sV par hôte après la bannière SSH — plus lent, mais aide à repérer macOS/Windows. Définissez COPYFAIL_PREAUTH_NMAP=0 pour ignorer le nmap par hôte (vous avez toujours besoin de nmap pour un balayage CIDR). |
sudo cp copyfail-creds.example /etc/copyfail-creds && sudo nano /etc/copyfail-credsuser:password par ligne (seul le premier : sépare l'utilisateur du mot de passe).600 requis : sudo chmod 600 /etc/copyfail-credssudo (ou chown à votre utilisateur, toujours 600).CREDS_FILE=/path/to/creds ./copyfail_scan.sh [TARGET]
TARGET : CIDR, IP/hôte unique, ou chemin vers une liste d'hôtes (commentaires # acceptés). Cible omise utilise la valeur par défaut du script (voir TARGET= dans 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
Sortie : stdout uniquement (pas de fichier de rapport). Utilisez tee pour sauvegarder. Après les lignes par hôte : === Rapport de synthèse === (sauf si COPYFAIL_SUMMARY=0) — Confirmé bon vs À vérifier ; les hôtes partageant la même ligne de synthèse sont fusionnés (étiquettes séparées par des virgules).
# Exemple : pas de nmap par hôte, séquentiel
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] sont des heuristiques du script ; les champs de fin 23111= / 23102= résument les sondes nftables/user-ns et arm64 SVE.*-pve / fournisseur : uname -r peut ne pas correspondre aux tuples NVD en amont — utilisez les avis de sécurité de la distribution/Proxmox et les paquets noyau installés, pas ce script seul.echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif.conf && sudo rmmod algif_aead 2>/dev/nullMIT — voir LICENSE.
| Variable | Défaut | Rôle |
|---|
CREDS_FILE | /etc/copyfail-creds | fichier user:password |
COPYFAIL_PREAUTH | 1 | Bannière SSH TCP/22 ; ignorer les non-Linux évidents avant connexion |
COPYFAIL_PREAUTH_NMAP | 1 | Nmap supplémentaire nmap -p22 -sV lorsque la bannière est non concluante (plus lent) |
COPYFAIL_PREAUTH_VERBOSE | 0 | 1 = afficher la bannière tronquée lors des sauts de pré-authentification |
COPYFAIL_PARALLEL | 24 | Nombre max de sondes simultanées (1 = séquentiel) |
COPYFAIL_ORDERED_OUTPUT | 1 | En parallèle, mettre en tampon les lignes dans l'ordre de sondage (0 = entrelacé) |
COPYFAIL_PTR_LOOKUP | 1 | DNS inverse IPv4 via getent lorsque nmap/la liste n'a pas de nom |
COPYFAIL_SUMMARY | 1 | Afficher le résumé groupé final (0 = ignorer) |
COPYFAIL_BANNER_TIMEOUT | 3 | Secondes d'attente pour l'identification SSH sur le port 22 |
COPYFAIL_SSH_CONNECT_TIMEOUT | 3 | ssh ConnectTimeout (secondes) |
COPYFAIL_NO_BANNER_SKIP_SSH | 1 | Si la pré-authentification ne voit pas de bannière, ignorer la tentative SSH (0 si les bannières sont très lentes) |