🔍 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-31431NVD · 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