Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/ctzisme/copyfail-guard
Outils DéfensifsScanners de VulnérabilitésAudit de ConfigurationRéponse aux Incidents
GitHubctzisme/copyfail-guard

copyfail-guard

Détecter et atténuer CVE-2026-31431 (Copy Fail) sur les systèmes Linux.

Voir le dépôt
2il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Site web
Partager

copyfail-guard

PyPI Python License pylint

Un CLI Python sans dépendance qui vérifie si un hôte Linux semble exposé à CVE-2026-31431 (« Copy Fail ») sans exécuter d'exploit. Il peut également appliquer une atténuation temporaire conservative lorsque le composant affecté est chargeable en tant que module noyau. Prend en charge Debian/Ubuntu, RHEL/Rocky/AlmaLinux, Fedora et SUSE.

root@kitploit:~
pip install copyfail-guard
copyfail-guard

Contexte

CVE-2026-31431 est un bug logique dans l'interface noyau algif_aead (socket AF_ALG AEAD) qui permet à un utilisateur local non privilégié d'effectuer une écriture contrôlée de 4 octets dans le cache de pages de tout fichier lisible, conduisant à une élévation de privilèges root. CVSS 7.8, présent depuis le noyau 4.14, corrigé dans les versions stables à partir d'avril 2026. Un exploit public existe et la vulnérabilité est répertoriée dans le CISA KEV.

Pourquoi ne pas simplement exécuter un exploit ?

Certaines vérifications de vulnérabilité reviennent à « exécuter l'exploit et voir si ça marche ». Ce n'est pas une bonne chose à faire sur des hôtes de production. copyfail-guard adopte une approche sans exploit. Il ne tente pas de déclencher le bug, de modifier les binaires setuid ou de prouver l'exploitabilité. Au lieu de cela, il inspecte l'état de l'hôte (version du noyau, état de chargement du module, configuration modprobe) et indique si la machine semble exposée.

Ce que fait cet outil

Sous-commandeAction
detectCombine cinq signaux (version du noyau, /proc/modules, modules.builtin, modules.dep, configuration modprobe) en un verdict parmi six
fixÉcrit atomiquement une règle modprobe install algif_aead /bin/false et tente de décharger algif_aead
resetSupprime la règle modprobe installée par fix (à exécuter après la mise à niveau vers un noyau corrigé)

fix est volontairement minimal — il n'appelle pas votre gestionnaire de paquets. La remédiation permanente nécessite une mise à niveau du noyau via le mécanisme de mise à jour normal de votre distribution.

Installation

root@kitploit:~
pip install copyfail-guard

Ou exécutez directement depuis un dépôt cloné sans installation :

root@kitploit:~
PYTHONPATH=src python3 -m copyfail_guard detect

Utilisation

root@kitploit:~
copyfail-guard [--json] [--dry-run] [--quiet] [detect | fix | reset]

detect (par défaut)

root@kitploit:~
$ copyfail-guard
[copyfail-guard] CVE-2026-31431 (Copy Fail) — VULNÉRABLE
  Distribution : Ubuntu 24.04.1 LTS  (famille debian)
  Noyau :       6.8.0-50-generic  (branche 6.12, corrigé à 6.12.85)
  Module :      algif_aead — chargé en tant que .ko
  Atténuation : aucune

Actions recommandées :
  1. Appliquer l'atténuation maintenant :
       sudo copyfail-guard fix
  2. Mettre à jour le noyau pour un correctif permanent :
       Mettez à jour le noyau de ce système vers 6.12.85 ou ultérieur (ce que votre
       distribution fournit une fois qu'elle a intégré le correctif CVE-2026-31431), puis redémarrez.

fix

Prévisualisez toujours avec --dry-run avant d'appliquer :

root@kitploit:~
$ sudo copyfail-guard --dry-run fix
[copyfail-guard] fix (dry-run) — OK
  [ ok ] Vérifications préalables (Linux, hôte, root)
  [skip] Écrirait la liste noire modprobe  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [skip] Tenterait de décharger algif_aead (non chargé actuellement)  [algif_aead]
  [skip] Ajouterait un enregistrement d'audit  [/var/log/copyfail-guard.log]

$ sudo copyfail-guard fix
[copyfail-guard] fix — OK
  [ ok ] Vérifications préalables (Linux, hôte, root)
  [ ok ] Liste noire modprobe écrite  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [ ok ] algif_aead déchargé  [algif_aead]
  [ ok ] Enregistrement d'audit ajouté  [/var/log/copyfail-guard.log]

Prochaine étape pour un correctif permanent :
  Mettez à jour le noyau vers une version corrigée de CVE-2026-31431 en utilisant le
  mécanisme de mise à jour normal de votre distribution, puis redémarrez.

Si le module est actuellement utilisé, l'étape de déchargement peut échouer. Dans ce cas, la règle modprobe persistante peut toujours être installée avec succès, et copyfail-guard signalera l'échec du déchargement comme un enregistrement d'action de type avertissement plutôt que de prétendre que le module a été supprimé.

Sortie JSON

--json émet un document structuré sur stdout, adapté aux pipelines jq, Ansible ou SOAR :

root@kitploit:~
$ copyfail-guard --json | jq .verdict
"vulnerable"

$ copyfail-guard --json | jq '{verdict, kernel: .kernel.patched_threshold}'
{
  "verdict": "vulnerable",
  "kernel": "6.12.85"
}

Codes de sortie

CodeSignification
0Sûr — le verdict est patched, mitigated ou not_applicable ; ou l'étape de correctif persistant a réussi
1Vulnérable — le verdict est vulnerable ou unmitigable_builtin
2Erreur — l'état n'a pas pu être déterminé, une condition préalable a été refusée, ou l'étape de correctif persistant a échoué

Verdicts

VerdictDescription
patchedLe noyau en cours d'exécution est à ou au-delà de la version corrigée
mitigatedLe noyau est vulnérable mais algif_aead est bloqué par la configuration modprobe
not_applicableLe noyau est vulnérable mais algif_aead n'est pas présent sur ce système
vulnerableLe noyau est vulnérable, le module est chargeable, aucune atténuation en place
unmitigable_builtinalgif_aead est compilé dans l'image du noyau — l'atténuation modprobe n'a aucun effet ; une mise à niveau du noyau est requise
unknownLa version du noyau n'a pas pu être analysée ou est hors de la plage évaluée

Suppression de l'atténuation

Après la mise à niveau vers un noyau corrigé, utilisez la sous-commande reset pour supprimer la règle modprobe installée par fix :

root@kitploit:~
$ sudo copyfail-guard --dry-run reset
[copyfail-guard] reset (dry-run) — OK
  [skip] Supprimerait /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf

$ sudo copyfail-guard reset
[copyfail-guard] reset — OK
  [ ok ] /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf supprimé

Redémarrez pour permettre à algif_aead de se charger à nouveau si nécessaire.

reset est idempotent — si le fichier est déjà absent, il se termine avec le code 0 et un message « rien à faire ». Puis redémarrez.

Remarques

Conteneurs. fix refuse de s'exécuter dans un conteneur car /proc/modules reflète le noyau de l'hôte mais le conteneur n'a pas l'autorité de charger ou décharger des modules. Exécutez copyfail-guard directement sur l'hôte.

algif_aead intégré. Certains noyaux compilent algif_aead directement dans l'image (CONFIG_CRYPTO_USER_API_AEAD=y). L'atténuation modprobe n'a aucun effet dans cette configuration ; la seule remédiation est une mise à niveau du noyau. detect signale unmitigable_builtin dans ce cas. Exécuter fix installera toujours la règle modprobe (qui empêche toute copie chargeable coexistante de se charger) mais l'instance intégrée n'est pas affectée — la mise à niveau du noyau et le redémarrage sont le seul véritable remède.

blacklist vs install … /bin/false. Les deux directives bloquent le chargement automatique ordinaire, mais install algif_aead /bin/false est plus forte car elle bloque également les invocations explicites ordinaires de modprobe algif_aead. Un administrateur suffisamment privilégié peut toujours contourner la politique modprobe, par exemple en utilisant des outils de chargement de modules de bas niveau ou des drapeaux modprobe spéciaux. copyfail-guard installe toujours la forme la plus forte. Si votre système possède déjà une directive blacklist simple, l'outil signale mitigated mais émet une note recommandant la mise à niveau.

SELinux/AppArmor. Les écritures dans /etc/modprobe.d/ sur RHEL héritent normalement de system_u:object_r:modules_conf_t:s0 du répertoire parent, donc aucun re-étiquetage manuel ne devrait généralement être nécessaire pour le fichier écrit par copyfail-guard.

initramfs. algif_aead n'est normalement pas inclus dans l'image de démarrage sur les principales distributions, donc copyfail-guard n'exécute pas update-initramfs -u ni dracut -f après l'installation de la règle modprobe. Si votre distribution ou votre build local inclut algif_aead dans initramfs, suivez les recommandations noyau/module de votre distribution.

Licence

Apache 2.0 — voir LICENSE.

Télécharger l’outil