
Script Python pour verifier si un systeme Linux est vulnerable a la faille CVE-2026-31431 (Copy Fail), une elevation de privileges locale dans le noyau Linux.
Script Python pour verifier si un systeme Linux est vulnerable a la faille CVE-2026-31431 (Copy Fail), une elevation de privileges locale dans le noyau Linux.
Depuis 2017 (commit 72548b093ee3), le module cryptographique algif_aead du noyau gere les operations en place de facon incorrecte. Via splice(), un utilisateur non-privilegie peut corrompre le page cache d'un binaire setuid et obtenir les droits root sans toucher le disque.
| # | Verification |
|---|---|
| 1 | Version du noyau (plage vulnerable) |
| 2 | Module algif_aead charge ou chargeable |
| 3 | Socket AF_ALG SOCK_SEQPACKET accessible sans privileges |
| 4 | os.splice() disponible (exploit Python direct) |
| 5 | Binaires setuid lisibles par tous (sudo, passwd...) |
| 6 | Protections actives (SELinux, AppArmor, blacklist modprobe) |
python3 check_cve_2026_31431.py
Aucune dependance externe. Fonctionne sans root.
Ce script ne fait qu'analyser le systeme. Il n'exploite pas la faille, ne charge aucun module et n'ecrit rien sur le disque.
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/algif_aead-block.conf
Ce contournement ne fonctionne pas sur les distributions RHEL (module integre au noyau).