
Atténuation Linux rapide et vérifiable pour CVE-2026-31431 Copy Fail : blocage algif_aead, vérification et durcissement seccomp AF_ALG.
______ ______ _ __ ______ __
/ ____/___ ____ __ _/ ____/___ _(_) / / ____/_ ______ __________/ /
/ / / __ \/ __ \/ / / / /_ / __ `/ / / / / __/ / / / __ `/ ___/ __ /
/___/ /_/ / /_/ / /_/ / / __/ / /_/ / / / / /_/ / /_/ / /_/ / / / /_/ /
\____/\____/ .___/\__, /_/ \__,_/_/_/ \____/\__,_/\__,_/_/ \__,_/
/_/ /____/
Évaluation et atténuation rapides et audivables de l’exposition Linux pour CVE‑2026‑31431 « Copy Fail » pendant que les noyaux sont corrigés.
CopyFail Guard est un outil d’opérations défensives pour les administrateurs Linux, les ingénieurs DevSecOps, les équipes plateformes et les répondants aux incidents. Il aide à réduire l’exposition au problème Linux algif_aead / AF_ALG en :
algif_aead est disponible, chargé, intégré ou déjà bloquémodprobe.d et déchargeant le module lorsque c’est sûrCorrectif final : installez le noyau corrigé de votre fournisseur et redémarrez.
Cet outil couvre l’écart opérationnel entre la divulgation et le correctif complet de la flotte.
splice, changements setuid, escalade de privilèges ou sondes destructrices./etc/modprobe.d/99-copyfail-guard.conf, et la restauration ne supprime que ce fichier.seccomp-patch ajoute un refus AF_ALG à un profil seccomp Docker/Podman/Kubernetes existant au lieu de remplacer votre durcissement d’exécution.assess --json et codes de sortie documentés prennent en charge les scans de flotte, la capture SIEM et les preuves de gestion des changements.Si vous êtes sur un hôte Linux et avez besoin d’une réponse rapide :
git clone --depth 1 https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess
Si le verdict est exposé et que algif_aead est modulaire :
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify
Pour des installations reproductibles, fixez une étiquette de version :
git clone --branch v0.3.0 --depth 1 https://github.com/juliosuas/copyfail-guard.git
Remplacez v0.3.0 par la dernière version publiée lorsque des versions plus récentes sont disponibles.
Exécutez d’abord la vérification sécurisée de l’exposition :
sudo ./bin/copyfail-guard.sh assess
Comment lire le résultat :
| Famille de verdict | Ce que cela signifie | Que faire |
|---|---|---|
EXPOSED_* | algif_aead / AF_ALG semble accessible ou chargeable | Atténuez maintenant, puis corrigez et redémarrez |
PARTIALLY_MITIGATED_* | Un bloc existe mais le module chargé ou l’état de redémarrage importe encore | Redémarrez ou déchargez en toute sécurité, puis vérifiez |
INTERIM_MITIGATED_* | L’atténuation locale est active | Gardez-la, mais corrigez et redémarrez quand même |
LOW_OBVIOUS_EXPOSURE_* | Les vérifications locales n’ont pas trouvé d’exposition évidente à algif_aead | Confirmez quand même l’état du correctif du fournisseur |
Si vous exécutez des conteneurs non fiables, des jobs CI, des sandbox ou des charges de travail multi‑utilisateurs, testez également si la création de socket AF_ALG est bloquée dans cet environnement d’exécution :
python3 tools/afalg-socket-test.py
PERMITTED ne prouve pas une exploitation réussie, mais prouve que l’API crypto espace utilisateur concernée est accessible. Pour les opérations défensives, c’est une raison suffisante pour appliquer l’atténuation pendant que vous confirmez le déploiement du noyau corrigé.
Aucune preuve de concept destructive n’est incluse. C’est une fonctionnalité, pas une lacune.
Une véritable preuve d’exploitation Copy Fail devrait valider l’impact sur la mémoire du noyau / le cache de pages ou l’escalade de privilèges. Inclure cela dans un référentiel d’atténuation public rendrait le projet moins sûr et moins déployable en production.
CopyFail Guard prouve les choses sur lesquelles les opérateurs peuvent agir en toute sécurité :
Pour le statut final de la vulnérabilité, combinez cet outil avec l’inventaire des avis/correctifs du fournisseur et les preuves de redémarrage.
CopyFail Guard est une atténuation, pas un remède. Il réduit l’exposition et vérifie les contrôles provisoires. Le correctif durable reste le noyau corrigé par le fournisseur plus le redémarrage.
L’outil est intentionnellement conçu pour être cloné et exécuté en réponse aux incidents : aucun compilateur, en‑têtes noyau, code d’exploitation ou gestionnaire de paquets tiers n’est nécessaire pour le flux hôte de base. python3 est nécessaire pour la sortie --json, seccomp-patch et le test non‑exploit de socket AF_ALG.
Clonez et exécutez :
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
chmod +x bin/copyfail-guard.sh
sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify
Installation système optionnelle :
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./scripts/install.sh
sudo copyfail-guard status
L’installateur permet de fixer la source et la destination pour des déploiements contrôlés :
sudo env COPYFAIL_GUARD_REF=v0.3.0 ./scripts/install.sh
Utilisez la dernière version publiée pour COPYFAIL_GUARD_REF lorsque des versions plus récentes sont disponibles.
Durcissement des conteneurs / CI :
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE
Validez qu’AF_ALG est bloqué à l’intérieur d’un conteneur protégé :
docker run --rm \
--security-opt seccomp=./copyfail-seccomp.json \
-v "$PWD/tools:/tools:ro" \
python:3.12-alpine \
python /tools/afalg-socket-test.py
Résultat attendu en mode protégé :
BLOCKED: socket(AF_ALG) denied by policy (...)
Voir Exemples de sorties pour les verdicts attendus, la forme JSON et les résultats de validation conteneur.