🔍 Contexte
Publié le 3 mai 2026 sur GitHub (dépôt wgnet/wg.copyfail.patch), cet article présente un workaround eBPF pour la vulnérabilité CVE-2026-31431, surnommée Copy.Fail, affectant le noyau Linux.
🐛 Description de la vulnérabilité
La CVE-2026-31431 permet à un utilisateur autorisé de modifier le cache d’une copie de tout fichier lisible, ce qui entraîne :
- Local Privilege Escalation (LPE) — élévation de privilèges locale jusqu’à root
- Échappement de sandbox/conteneur
- D’autres impacts liés à l’intégrité du système de fichiers
L’exploitation repose sur la création d’une socket AF_ALG, fournie par les modules noyau algif*.
⚠️ Systèmes affectés
Le workaround habituel (désactivation du module algif_aead) est impossible lorsque le module est compilé en dur dans le noyau, comme c’est le cas pour :
- Fedora Linux
- Oracle Linux
- Distributions RHEL-based
Certains upstreams ne disposent pas encore du patch officiel.
🛡️ Solution proposée
Deux programmes eBPF sont fournis :
| Programme | Mécanisme | Prérequis |
|---|---|---|
ebpf-alg-socket-filter |
Filtre la création de socket AF_ALG via eBPF/LSM | Module eBPF LSM activé |
ebpf-alg-socket-killer |
Tue tout processus créant une socket AF_ALG | Aucun (plus radical) |
Les scripts build.sh et apply.sh permettent la compilation et le chargement/déchargement des programmes. Les dépendances requises sont : clang, kernel-headers, libbpf-devel, bpftool.
📌 Type d’article
Il s’agit d’une publication technique de workaround (patch de sécurité) visant à fournir une mitigation immédiate pour les systèmes Linux vulnérables à CVE-2026-31431 dans l’attente d’un correctif noyau officiel.
🧠 TTPs et IOCs détectés
TTP
- T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
- T1611 — Escape to Host (Privilege Escalation)
IOC
- CVEs :
CVE-2026-31431— NVD · CIRCL - Fichiers :
ebpf-alg-socket-filter.c - Fichiers :
ebpf-alg-socket-killer.c - Fichiers :
apply.sh - Fichiers :
build.sh - Chemins :
/sys/kernel/security/lsm
🟡 Indice de vérification factuelle : 41/100 (moyenne)
- ⬜ github.com — source non référencée (0pts)
- ✅ 2285 chars — texte partiel (fulltext extrait) (13pts)
- ✅ 6 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 2 TTP(s) MITRE (8pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ 0/1 CVE(s) confirmée(s) (0pts)
🔗 Source originale : https://github.com/wgnet/wg.copyfail.patch