URL:     https://linuxfr.org/users/vstinner/journaux/exploit-linux-local-pour-passer-root-copy-fail-cve-2026-31431
Title:   Exploit Linux local pour passer root : Copy Fail (CVE-2026-31431)
Authors: Victor STINNER
Date:    2026-04-30T15:37:34+02:00
License: CC By-SA
Tags:    cve-2026-31431, cybersécurité, sécurité, noyau_linux et cve
Score:   14


La société Theori a publié un [exploit](https://github.com/theori-io/copy-fail-CVE-2026-31431/blob/main/copy_fail_exp.py) (écrit avec Python 3.10) pour le noyau Linux x86-64 pour passer root en local. Il utilise un bug dans les sockets AF_ALG sur une opération AEAD qui existe depuis 2017 ([commit](https://github.com/torvalds/linux/commit/72548b093ee3)). Depuis d'autres exploits ont été écrits tels quel [copy-fail-c](https://github.com/tgies/copy-fail-c) qui est écrit en C et supporte d'autres architectures CPU (comme AArch64); sous Fedora, il a besoin du paquet glibc-static.

Le correctif ([commit](https://github.com/torvalds/linux/commit/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5)) est disponible dans le noyau Linux 7.0. Référez-vous aux documentations de votre distribution pour les backports vers les noyaux plus anciens:

* [RHEL](https://access.redhat.com/security/cve/cve-2026-31431)
* [Debian](https://security-tracker.debian.org/tracker/CVE-2026-31431)
* [Ubuntu](https://ubuntu.com/security/CVE-2026-31431)
* [OpenSUSE](https://www.suse.com/security/cve/CVE-2026-31431.html)

La [faille "copy.fail"](https://copy.fail/) écrit dans des pages de cache du système de fichier. C'est une primitive simple, fiable et efficace pour écrire un exploit. Le chercheur Taeyang Lee étudiait la surface d'attaque AF_ALG, puis d'autres chercheurs de Theori l'ont rejoint. L'outil Xint Code aidé par l'IA a accéléré la recherche : lire [l'article](https://xint.io/blog/copy-fail-linux-distributions) pour les détails.

L'exploit écrit dans des pages de cache. Exécuter `sync && echo 3 >/proc/sys/vm/drop_caches` (pour vider le cache) ou rebooter la machine annule l'effet de l'exploit.

Il existe plusieurs manières de bloquer l'exploit comme ajouter `initcall_blacklist=algif_aead_init` à la ligne de commande du noyau Linux, ou bloquer le module noyau `algif_aead` sur les distributions qui le compilent comme module (`CONFIG_CRYPTO_USER_API_AEAD=m` dans le config noyau).
