
Dépôt de recherche défensif pour CVE-2026-31431, une escalade de privilèges locale du noyau Linux via la corruption du cache de pages par AF_ALG, splice() et authencesn. Comprend une analyse technique, des stratégies de détection et des mesures d'atténuation.
Copy Fail (CVE-2026-31431) est une vulnérabilité de type Local Privilege Escalation (LPE) affectant le noyau Linux via une corruption contrôlée du page cache à travers les mécanismes AF_ALG, splice() et authencesn.
Ce dépôt a pour objectif de :
⚠️ Ce projet est strictement éducatif, défensif et destiné à la recherche sécurité.
Toutes les démonstrations présentées dans ce dépôt ont été réalisées dans des environnements de laboratoire isolés et contrôlés.
Aucune utilisation sur des systèmes tiers sans autorisation explicite n’est autorisée.
| Caractéristique | Détail |
|---|---|
| Aucune race condition | Exploitation déterministe |
| Pas de modification disque |
Comparable à :
User Space
↓
AF_ALG Socket
↓
splice()
↓
Page Cache Reference
↓
authencesn In-Place Write
↓
Controlled 4-Byte Overwrite
↓
execve()
↓
Privilege Escalation
2011 → authencesn ajouté au kernel
2015 → AF_ALG reçoit le support AEAD + splice()
2017 → Optimisation in-place dans algif_aead.c
2026 → Découverte et correctif officiel
AF_ALGInterface socket exposant les primitives cryptographiques du noyau Linux au userspace.
splice()Mécanisme permettant le transfert de pages sans copie entre file descriptors.
authencesnTemplate AEAD IPsec ESN utilisant le buffer destination comme espace de travail temporaire.
L’optimisation introduite dans algif_aead.c a permis le chaînage direct des pages du page cache dans la scatterlist destination via sg_chain().
Input SGL: AAD || Ciphertext || Tag (page cache)
↑
Output SGL: AAD || Ciphertext ------+
authencesn écrit alors directement dans les pages du page cache du fichier cible.
| Primitive | Contrôle |
|---|---|
| Fichier cible | Tout fichier lisible |
⚠️ Réservé à des environnements de test isolés.
uname -r
lsmod | grep algif_aead
python3 --version
git clone https://github.com/theori-io/copy-fail-CVE-2026-31431.git
cd copy-fail-CVE-2026-31431
python3 copy_fail_exp.py
auditctl -a always,exit -F arch=b64 -S socket -F a0=38 -k af_alg_socket
auditctl -a always,exit -F arch=b64 -S splice -k splice_monitor
ps aux | awk '$1 == "root"'
ss -tlnp
algif_aeadecho "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead
{
"defaultAction": "SCMP_ACT_ALLOW",
"syscalls": [
{
"names": ["socket"],
"action": "SCMP_ACT_ERRNO",
"args": [
{ "index": 0, "value": 38, "op": "SCMP_CMP_EQ" }
]
}
]
}
Le correctif a664bf3d603d supprime l’opération in-place vulnérable dans algif_aead.c.
sudo apt update && sudo apt upgrade
sudo reboot
| Date | Événement |
|---|---|
| 2017 | Introduction de la vulnérabilité |
| 2026-03-23 | Signalement au kernel security team |
| 2026-04-01 | Correctif intégré |
| 2026-04-29 | Disclosure publique |
linux kernel security, CVE-2026-31431, copy fail, page cache, AF_ALG, authencesn, linux LPE, kernel exploit, linux hardening, security research, dirty pipe, kernel mitigation
Ce dépôt est destiné exclusivement :
Toute utilisation non autorisée est illégale.
🛡️ Awareness • Mitigation • Defensive Research
🔁 Partagez le projet avec la communauté cybersécurité
⭐ Soutenez la recherche sécurité Linux
| Élément | Valeur |
|---|
| Type | Local Privilege Escalation |
| Impact | Root local |
| Composant | Linux Kernel |
| Sous-système | AF_ALG / authencesn |
| Primitive | Écriture contrôlée dans le page cache |
| Condition | Utilisateur non-privilégié |
| Stealth | Fichier disque intact |
| Gravité | Critique |
| Détection difficile |
| Exploit minimaliste | Python standard uniquement |
| Impact conteneurs | Kubernetes / VPS / shared hosting |
| Large fenêtre | Kernels vulnérables depuis 2017 |
| Offset |
| Contrôlé via splice |
| Valeur écrite | Champ seqno_lo |
| Persistance | Mémoire uniquement |
| Détection disque | Impossible |
| Distribution | Kernel | Statut |
|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ Vulnérable |
| Amazon Linux 2023 | 6.18.8-9.213 | ✅ Vulnérable |
| RHEL 10.1 | 6.12.0 | ✅ Vulnérable |
| SUSE 16 | 6.12.0 | ✅ Vulnérable |
| Ressource | Description |
|---|
| Dirty Pipe | CVE-2022-0847 |
| Linux Kernel Docs | Documentation officielle |
| Openwall Security | Mailing list sécurité |
| LWN.net | Analyse kernel Linux |
| AF_ALG Documentation | Crypto API |
| XFRM / IPsec | Sous-système concerné |