🔍 Contexte

Publié le 18 octobre 2026 par PWNAI Research (Paulos Yibelo) sur pwn.ai, cet article détaille la découverte de CVE-2026-99999, une vulnérabilité critique dans la pile réseau du noyau Linux permettant une évasion complète guest-to-host depuis un environnement KVM. La recherche a été initiée dans le cadre du challenge sandbox à 1 million de dollars lancé par Vercel le 18 août 2026.

🧠 Mécanisme de la vulnérabilité

La vulnérabilité repose sur un pattern appelé “deferred-metadata trust inversion” combinant trois transitions de confiance :

  • Origin trust : un guest non fiable décrit une opération que l’hôte exécutera plus tard
  • Interpretation trust : le paquet change de représentation lors du traitement des en-têtes de couche liaison
  • Temporal trust : une opération différée modifie un état déjà parsé avant qu’un autre consommateur noyau l’utilise

Concrètement, la structure sk_buff de Linux supporte un état CHECKSUM_PARTIAL où le checksum transport est calculé de manière différée. Les champs csum_start et csum_offset autorisent une écriture ultérieure dans la mémoire du paquet. Un guest peut manipuler ces métadonnées pour que l’écriture différée modifie l’en-tête IPv4 après que le noyau l’ait déjà validé, notamment le champ ihl (longueur d’en-tête), le faisant passer de 0x45 (20 octets) à 0x4f (60 octets).

💥 Impact démontré

  • Divulgation de 32 octets de mémoire hôte par paquet actif (lecture hors limites logiques du sk_buff)
  • Écriture sélective de 64 octets dans le noyau hôte via contrôle du comportement d’allocation
  • Exécution d’un helper root hôte démontrée sur 4 boots froids distincts sur des machines appartenant aux chercheurs
  • Vulnérabilité présente dans de nombreux environnements hyperviseur, pas seulement KVM

🛠️ Correction appliquée

Le patch accepté (commit 6785011f8b16, auteur : Michael S. Tsirkin, Red Hat) ajoute un helper ip_check_csum_start() dans include/net/ip.h vérifiant l’invariant :

c s u m _ s t a r t > = n e t w o r k _ h e a d e r + i p _ h d r l e n ( s k b )

Ce guard est appliqué à 5 consommateurs de checksum IPv4 avant toute complétion. Le patch a été intégré dans net.git le 8 octobre 2026 et mergé dans l’arbre de Linus le 14 octobre 2026. Il est explicitement décrit comme une mesure de défense en profondeur, une validation plus large de l’ingress restant à faire.

📅 Chronologie

  • 18 août 2026 : Lancement du challenge Vercel
  • 20 août 2026 : Soumission du rapport initial de divulgation mémoire hôte
  • 4 septembre 2026 : Rapport privé à l’équipe sécurité du noyau Linux
  • 7 septembre 2026 : Reproduction confirmée par Michael S. Tsirkin
  • 19-22 septembre 2026 : Soumissions publiques sur netdev
  • 7-8 octobre 2026 : Patch accepté dans net.git
  • 13-14 octobre 2026 : Coordination CVE et revue stable

📌 Type d’article

Publication de recherche technique détaillant une vulnérabilité originale avec preuve de concept, chronologie de divulgation coordonnée et analyse du correctif upstream.

🧠 TTPs et IOCs détectés

TTP

  • T1611 — Escape to Host (Privilege Escalation)
  • T1203 — Exploitation for Client Execution (Execution)
  • T1005 — Data from Local System (Collection)

IOC

  • CVEs : CVE-2026-99999 — NVD · CIRCL

⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 19 octobre 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.

Malware / Outils

  • Omega-Pwn (framework)

🟡 Indice de vérification factuelle : 51/100 (moyenne)

  • ⬜ pwn.ai — source non référencée (0pts)
  • ✅ 27735 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 1 IOC(s) (6pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 3 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ✅ 1/1 CVE(s) confirmée(s) (CIRCL) (5pts)

🔗 Source originale : https://pwn.ai/blog/pwnescape