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
copy-fail-checker — Vérificateur Bash en lecture seule pour la vulnérabilité Copy Fail du noyau Linux (CVE-2026-31431) | Kitploit
Outils/GitHubGitHub/samanzamani/copy-fail-checker
Escalade de PrivilègesScanners de VulnérabilitésAnalyse des VulnérabilitésExploitationScripting et AutomatisationCryptographieApprentissage et Éducation
GitHubsamanzamani/copy-fail-checker

copy-fail-checker

Vérificateur Bash en lecture seule pour la vulnérabilité Copy Fail du noyau Linux (CVE-2026-31431)

Voir le dépôt
512il 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 →
Partager

Copy Fail Checker — CVE-2026-31431

Un petit script Bash sans dépendances qui vous indique si votre système Linux est exposé à la vulnérabilité locale d'élévation de privilèges Copy Fail (CVE-2026-31431).

Le script est en lecture seule : il n'exploite jamais la faille, ne charge aucun module kernel et ne modifie jamais le système.


Qu'est-ce que Copy Fail ?

Copy Fail est un bug de logique dans le modèle cryptographique AEAD authencesn du noyau Linux, accessible depuis l'espace utilisateur via l'interface de sockets AF_ALG (algif_aead).

ChampValeur
CVECVE-2026-31431
Divulguée2026-04-29
CVSS v3.17,8 (Élevée)
ClasseÉlévation de privilèges locale
Composant affectécrypto/authencesn + crypto/algif_aead
Introduite en2017 (optimisation AEAD sur place dans algif_aead.c)
Correctif principalcommit a664bf3d603d, fusionné le 2026-04-01

Pourquoi c'est important

Un utilisateur local sans privilèges peut déclencher une écriture déterministe et contrôlée de 4 octets dans le cache de pages de tout fichier qu'il peut lire. Une preuve de concept publique (732 octets de Python) utilise cette primitive pour écraser un binaire setuid et obtenir root sur pratiquement toutes les distributions grand public publiées depuis 2017.

Qui est concerné

Toute distribution Linux dotée d'un noyau compilé depuis 2017 avec algif_aead activé. Les familles confirmées comme affectées incluent :

  • Ubuntu 18.04 → 25.10 (Ubuntu 26.04 « Resolute » n'est pas affecté)
  • Debian (toutes les suites actuellement prises en charge)
  • RHEL / AlmaLinux / Rocky / CentOS Stream 8, 9, 10
  • SUSE Linux Enterprise / openSUSE
  • Amazon Linux 2023
  • La plupart des hôtes de conteneurs et des images de nœuds Kubernetes managés issus des distributions ci-dessus

Démarrage rapide

root@kitploit:~
# Télécharger le script
curl -fsSLO https://raw.githubusercontent.com/samanzamani/copy-fail-checker/main/check-copy-fail.sh

# Le rendre exécutable
chmod +x check-copy-fail.sh

# L'exécuter
./check-copy-fail.sh

Ou cloner le dépôt :

root@kitploit:~
git clone https://github.com/samanzamani/copy-fail-checker.git
cd copy-fail-checker
./check-copy-fail.sh

Le script ne nécessite pas root. L'exécuter avec votre utilisateur normal donne la vue la plus réaliste de la surface d'attaque, car c'est exactement le contexte qu'aurait un attaquant.


Ce que le script vérifie

Le script exécute trois vérifications indépendantes et les combine en un verdict unique.

1. Version du noyau

Il lit /etc/os-release et uname -r, puis compare votre noyau en cours d'exécution à la version corrigée officielle publiée par l'équipe sécurité de votre distribution. Le tableau des versions couvre actuellement :

Si votre distribution n'est pas dans le tableau, le script se rabat sur les vérifications d'exécution ci-dessous.

2. Statut du module algif_aead

Le script inspecte quatre éléments sans rien modifier :

  • Si le module est actuellement chargé (lsmod)
  • Si le module est disponible pour chargement (modinfo)
  • Si le module est blacklisté dans /etc/modprobe.d, /usr/lib/modprobe.d ou /run/modprobe.d
  • Si le module est intégré au noyau dans /boot/config-<uname> ou /proc/config.gz

Un module blacklisté, non chargé et non intégré ferme la surface d'attaque même sur un noyau non corrigé.

3. Accessibilité des sockets AF_ALG

Le signal le plus fiable est ce qu'un attaquant verrait réellement. Le script utilise une petite sonde Python (socket.socket(AF_ALG, SOCK_SEQPACKET, 0) suivie de bind() sur le modèle AEAD authencesn(hmac(sha256),cbc(aes))) pour déterminer si des sockets AF_ALG peuvent être créées et liées depuis un contexte non privilégié. La sonde crée, lie puis ferme immédiatement la socket sans laisser quoi que ce soit d'exploitable.

Si python3 n'est pas installé, la sonde est ignorée et le verdict repose sur les vérifications 1 et 2.


Verdicts possibles


Sortie JSON pour l'automatisation

Pour les pipelines, la gestion de configuration ou l'analyse de parcs de machines, passez --json :

root@kitploit:~
./check-copy-fail.sh --json

Exemple de sortie :

root@kitploit:~
{
  "verdict": "vulnerable",
  "distro_id": "ubuntu",
  "distro_version_id": "24.04",
  "kernel": "6.8.0-31-generic",
  "patched_version": "",
  "kernel_status": "unknown",
  "module_loaded": 0,
  "module_builtin": 0,
  "module_available": 1,
  "module_blacklisted": 0,
  "af_alg_status": "reachable"
}

Atténuation

Recommandé : installer la mise à jour du noyau fournie par l'éditeur

C'est le seul correctif complet. Après la mise à jour, redémarrez pour que le nouveau noyau soit réellement en cours d'exécution.

root@kitploit:~
# Debian / Ubuntu
sudo apt update && sudo apt full-upgrade && sudo reboot

# RHEL / AlmaLinux / Rocky / CentOS Stream
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot

# openSUSE / SLES
sudo zypper refresh && sudo zypper update && sudo reboot

# Amazon Linux 2023
sudo dnf upgrade --releasever=latest && sudo reboot

Contournement temporaire : désactiver algif_aead

Si vous ne pouvez pas redémarrer immédiatement avec un noyau corrigé, blacklistez le module vulnérable. Cela casse toute application qui utilise légitimement les chiffrements AEAD AF_ALG (rare sur la plupart des serveurs — vérifiez d'abord dans un environnement de préproduction).

root@kitploit:~
# Rendre le blacklist persistant après redémarrage
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf

# Décharger le module du noyau en cours immédiatement
sudo rmmod algif_aead 2>/dev/null || true

Si le module est intégré au noyau, le blacklist ne fonctionnera pas, mais il est possible de désactiver l'initcall. Un redémarrage est nécessaire.

root@kitploit:~
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

sudo reboot

Pour les charges de travail conteneurisées, bloquez également la famille de sockets AF_ALG dans votre profil seccomp afin qu'un conteneur compromis ne puisse pas atteindre la surface noyau.


Exemple d'exécution

root@kitploit:~
== System information ==
[INFO]    Distribution : Ubuntu 24.04.2 LTS (ubuntu 24.04)
[INFO]    Kernel       : 6.8.0-31-generic

== Check 1 / 3 — Kernel version ==
[WARN]    No vendor-fixed kernel version is recorded for ubuntu 24.04.
[WARN]    Falling back to runtime mitigation checks below.

== Check 2 / 3 — algif_aead kernel module ==
[WARN]    algif_aead is not loaded but can be autoloaded on demand (no blacklist found).

== Check 3 / 3 — AF_ALG socket reachability ==
[VULN]    AF_ALG sockets are reachable from this unprivileged context.

== Verdict ==
[VULN]    This system appears to be VULNERABLE to CVE-2026-31431.
[VULN]    Apply the vendor kernel update or blacklist algif_aead as a temporary mitigation.

Limites

  • Le tableau des versions corrigées ne couvre que les familles listées ci-dessus. Les PR pour l'étendre sont les bienvenues.
  • Le script se fie à uname -r. Si vous exécutez un noyau hors arbre ou recompilé, la comparaison de versions peut ne pas refléter si le correctif a réellement été rétroporté.
  • Les environnements conteneurisés / sandbox en direct peuvent signaler blocked_permission pour AF_ALG simplement parce que seccomp est actif — le noyau hôte lui-même peut toujours être vulnérable.

Références

  • Avis de sécurité CERT-EU 2026-005
  • Divulgation Xint : 732 octets pour root sur toutes les principales distributions Linux
  • AlmaLinux : correctifs CVE-2026-31431 publiés
  • Ubuntu : correctifs de la vulnérabilité Copy Fail disponibles
  • Blog sécurité Microsoft : Copy Fail dans les environnements cloud
  • Sophos : exploit PoC disponible
  • Réponse de SUSE à copy.fail
  • Couverture de The Hacker News
  • Bugcrowd : ce que nous savons de Copy Fail
  • Couverture de The Register

Licence

MIT — utilisez, modifiez et distribuez librement. Aucune garantie.

Télécharger l’outil
DistributionNoyau corrigé (≥)
AlmaLinux / RHEL / Rocky / CentOS 84.18.0-553.121.1.el8_10
AlmaLinux / RHEL / Rocky / CentOS 95.14.0-611.49.2.el9_7
AlmaLinux / RHEL / Rocky / CentOS 106.12.0-124.52.2.el10_1
Ubuntu 26.04+ (« Resolute »)non affecté
Ubuntu 18.04 – 25.10évolutif, voir apt
Debian (toutes les suites)évolutif, voir DSA
VerdictCode de sortieSignification
patched0Le noyau en cours d'exécution est au niveau ou au-dessus de la version corrigée par l'éditeur.
mitigated0AF_ALG est bloqué et le module n'est pas chargé.
likely_mitigated0Le module est blacklisté et non chargé ; aucune sonde en direct n'a été possible.
vulnerable1Le noyau n'est pas corrigé et algif_aead / AF_ALG est accessible.
unknown2Pas assez d'informations pour décider. À traiter comme potentiellement vulnérable.
not_applicable3Le système ne tourne pas sous Linux.