📅 Source et contexte : Publié le 11 septembre 2026 par Ruben Groenewoud sur Elastic Security Labs, cet article s’inscrit dans la série « Linux Detection Engineering » et présente un framework de détection des élévations de privilèges locales (LPE) sous Linux, validé contre des preuves de concept (PoC) publiques.

🔍 Contexte de la menace : En 2026, le rythme des LPE Linux divulguées publiquement s’est accéléré. Sur 13 CVE suivis, 7 partagent la même classe de bug : un chemin zero-copy ou copy-on-write qui écrit dans des données censées être copiées au préalable (corruption de page-cache). Des outils d’IA (Claude Mythos Preview d’Anthropic, LLM non nommé) ont été utilisés par des chercheurs (Qualys notamment) pour identifier de nouvelles instances de bugs connus, accélérant la découverte de variantes.

🧱 Architecture du framework de détection : Le framework repose sur deux couches :

  • Couche générale : détecte le flux commun à toute LPE — un processus non-root exécutant depuis un chemin accessible en écriture (/tmp, /dev/shm, /var/tmp, /home, /run/user) suivi d’un changement de UID vers 0.
  • Couche par technique : règles spécifiques aux classes de bugs (page-cache, namespaces, helpers SUID, DBus, vol de file descriptor).

📋 CVE couverts et familles de bugs :

  • Page-cache/zero-copy : CVE-2026-31431 (Copy Fail, AF_ALG AEAD), CVE-2026-43284 / CVE-2026-43500 (DirtyFrag, ESP/RxRPC), CVE-2026-46300 (Fragnesia, skb_segment), CVE-2026-31635 (DirtyDecrypt/DirtyCBC, RxGK), CVE-2026-46331 (pedit COW, tc act_pedit), CVE-2026-43503 (DirtyClone, TEE clone/ESP)
  • Namespace et helpers : CVE-2026-46243 (CIFSwitch, CIFS/cifs.spnego), CVE-2026-64531 (OVSwrap, OVS Netlink)
  • Vol de file descriptor : CVE-2026-46333 (ptrace_may_dream/ssh-keysign-pwn/chage_pwn, exit-time FD theft via pidfd_getfd)
  • Misconfigurations SUID : find -exec (sans CVE), bash -p (sans CVE)

🛠️ Techniques de détection clés :

  • Corrélation uid_change vers 0 depuis un chemin accessible en écriture
  • Détection d’abus de helpers SUID (su, sudo, pkexec, passwd) avec parent interpréteur ou shell one-liner
  • Règle stringcontains(process.executable, process.command_line) pour les binaires SUID inconnus
  • Séquences EQL : exec → uid_change → confirmation (whoami, id, logname)
  • Détection de unshare(CLONE_NEWUSER) suivi d’une transition root
  • Règles descendant of pour les transitions root profondes
  • Détection Python : uid_change vers 0 depuis un répertoire accessible en écriture avec new_terms sur process.command_line
  • Détection GTFOBins : liste de binaires interactifs (find, gdb, vim, dd, nmap, etc.) avec euid=0 et real_uid≠0

📊 Résultats des tests : 11 PoC publics et 2 misconfigurations testés. Chaque exploit a déclenché au moins une règle. Les PoC Python (DirtyClone, OVSwrap) ont déclenché des règles génériques même sans signal kernel visible. Les exploits compilés localement ont déclenché des règles « Recently Compiled Executable ».

📝 Nature de l’article : Publication de recherche en detection engineering, à visée opérationnelle, fournissant des règles EQL/KQL directement utilisables dans Elastic Security (SIEM et EDR), disponibles dans les dépôts publics detection-rules et protections-artifacts d’Elastic.

🧠 TTPs et IOCs détectés

TTP

  • T1548.001 — Abuse Elevation Control Mechanism: Setuid and Setgid (Privilege Escalation)
  • T1611 — Escape to Host (Privilege Escalation)
  • T1055 — Process Injection (Privilege Escalation)
  • T1059 — Command and Scripting Interpreter (Execution)
  • T1068 — Exploitation for Privilege Escalation (Privilege Escalation)

IOC

  • CVEs : CVE-2026-31431NVD · CIRCL
  • CVEs : CVE-2026-43284NVD · CIRCL
  • CVEs : CVE-2026-43500NVD · CIRCL
  • CVEs : CVE-2026-46300NVD · CIRCL
  • CVEs : CVE-2026-31635NVD · CIRCL
  • CVEs : CVE-2026-46331NVD · CIRCL
  • CVEs : CVE-2026-43503NVD · CIRCL
  • CVEs : CVE-2026-46243NVD · CIRCL
  • CVEs : CVE-2026-64531NVD · CIRCL
  • CVEs : CVE-2026-46333NVD · CIRCL
  • Chemins : /tmp
  • Chemins : /dev/shm
  • Chemins : /var/tmp
  • Chemins : /run/user
  • Chemins : /var/run/user
  • Chemins : /home
  • Chemins : /usr/bin/su
  • Chemins : /bin/su
  • Chemins : /etc/shadow

⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 14 septembre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.


🟢 Indice de vérification factuelle : 75/100 (haute)

  • ✅ elastic.co — source reconnue (liste interne) (20pts)
  • ✅ 62483 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 19 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 5 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ✅ 5/5 CVE(s) confirmée(s) (CIRCL) (5pts)

🔗 Source originale : https://www.elastic.co/security-labs/threat-command/linux-privilege-escalation-detection-framework