Quatre exploits publics du noyau Linux exposent les hôtes non corrigés à un accès root local

Asim Manizada publie 4 exploits du noyau Linux (DirtyAH6, TUNderflow, PPPoEject, DiagSpill) permettant une élévation locale vers root. Corrigez vite.

Texte généré par intelligence artificielle, publié sans relecture humaine. Transparence IA

Quatre exploits publics du noyau Linux exposent les hôtes non corrigés à un accès root local
Vulnérabilités

Image d’illustration générée par IA

La disponibilité de codes d’exploitation fonctionnels renforce l’urgence

Le chercheur en sécurité Asim Manizada a publié le 18 septembre 2026 des détails techniques et des exploits fonctionnels visant quatre vulnérabilités du noyau Linux capables d’élever des privilèges locaux jusqu’à root.

Ces failles sont DirtyAH6 (CVE-2026-80844), TUNderflow (CVE-2026-81000), PPPoEject (CVE-2026-68121) et DiagSpill (CVE-2026-74469). Chacune touche une partie différente de la pile réseau du noyau, mais toutes quatre concernent une gestion non sûre de la mémoire dans du code hautement privilégié.

Manizada a signalé les vulnérabilités à l’équipe de sécurité du noyau Linux à la mi-juillet. Il a ensuite coordonné ses travaux avec les distributions Linux avant de publier les exploits, laissant aux mainteneurs le temps de diffuser les correctifs.

Aucune exploitation dans la nature n’a été signalée. Cependant, la publication du code offre aux attaquants une base pour adapter ces techniques aux noyaux de distribution non corrigés, en particulier sur les serveurs multiutilisateurs, les infrastructures partagées et les hôtes de conteneurs.

Les exploits publiés sont conçus pour des builds spécifiques du noyau et peuvent provoquer le plantage de leurs cibles. Ils s’apparentent davantage à des outils de recherche de type proof of concept qu’à des implants fiables, mais Manizada a réussi à exploiter les vulnérabilités sous-jacentes pour obtenir des shells root pendant ses tests.

Quatre failles, quatre sous-systèmes réseau

DirtyAH6 affecte l’implémentation de l’Authentication Header d’IPsec pour IPv6. Le code vulnérable réorganise les adresses d’un en-tête de routage IPv6 avant de calculer ou de valider l’Integrity Check Value.

Le problème vient du fait que ipv6_rearrange_rthdr() faisait confiance au champ segments_left de l’en-tête de routage sans vérifier qu’il correspondait au nombre d’adresses indiqué par hdrlen. Avec un paquet IPv6 brut HDRINCL, hdrlen peut indiquer une seule adresse tandis que segments_left contient une valeur bien plus élevée. La valeur 255 déplace un pointeur d’adresse interne de 4 064 octets vers l’arrière, ce qui crée un accès mémoire hors limites et peut provoquer une écriture.

TUNderflow se trouve dans le code réseau virtuel TUN/TAP. Dans tun_get_user(), le noyau utilisait tun->align à la fois comme espace libre en tête du socket-buffer et dans un calcul déterminant la quantité de données du paquet devant rester linéaire.

Open vSwitch peut transmettre depuis un autre port une demande d’espace libre en tête surdimensionnée. Si cette valeur dépasse la zone exploitable dans la tête d’un socket-buffer d’une page, SKB_MAX_HEAD(align) passe sous zéro. Une valeur intermédiaire négative peut ensuite être convertie avec dépassement lors de son affectation à un size_t non signé, permettant à tun_alloc_skb() de positionner skb->data en dehors de la mémoire tampon allouée.

TUNderflow affiche un score CVSS 3.1 de 7,8, avec le vecteur CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H.

PPPoEject affecte le protocole PPP over Ethernet. Dans pppoe_sendmsg(), le noyau enregistrait un pointeur vers un en-tête PPPoE, puis appelait dev_hard_header(). Les callbacks spécifiques aux périphériques peuvent agrandir ou réallouer la tête du socket-buffer, invalidant ainsi les pointeurs vers la mémoire d’origine.

Une séquence de déclenchement consiste à bloquer une opération d’envoi dans copy_from_user() pendant l’ajout du premier port non-Ethernet à un périphérique team vide. Un callback délégué de l’en-tête GRE peut alors déplacer la mémoire tampon. PPPoE écrit ensuite six octets via le pointeur obsolète dans une zone mémoire libérée, ce qui provoque une condition use-after-free.

PPPoEject est également notée 7,8 selon CVSS 3.1, avec CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H.

DiagSpill est une faille de débordement de compteur dans sctp_diag. La fonction sctp_assoc_add_peer() incrémente un transport_count de 16 bits pour chaque pair SCTP unique. L’ajout du 65 536e transport fait revenir le compteur à zéro.

Le code de diagnostic SCTP réserve alors une charge utile INET_DIAG_PEERS fondée sur cette valeur nulle, tout en copiant l’ensemble des structures de transport_addr_list. Il en résulte une écriture hors limites d’environ 8 Mio au-delà de la fin du socket-buffer. Le correctif refuse les nouveaux pairs uniques lorsque transport_count atteint U16_MAX.

DiagSpill obtient le score le plus élevé des quatre failles : 8,8, avec CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H.

Aucun score ni vecteur CVSS v3 n’est disponible pour DirtyAH6.

Exigences d’accès local et effets distants limités

DirtyAH6, TUNderflow et PPPoEject nécessitent généralement que les espaces de noms utilisateur non privilégiés soient activés. Cette fonctionnalité permet à un compte ordinaire d’acquérir des capacités semblables à celles de root au sein d’un espace de noms isolé, notamment les capacités nécessaires pour accéder à des chemins réseau normalement restreints.

Par conséquent, ces trois failles sont surtout pertinentes lorsque les utilisateurs locaux peuvent créer leurs propres espaces de noms. La désactivation de cette fonctionnalité peut supprimer le point d’entrée non privilégié attendu, mais elle ne protège pas les processus ou les conteneurs qui disposent déjà des capacités nécessaires à l’administration du réseau.

DiagSpill est différent. Manizada indique que cette faille ne nécessite ni espace de noms utilisateur ni privilèges particuliers. Le vecteur NVD lui attribue néanmoins PR:L, ce qui signifie que de faibles privilèges sont requis selon son modèle de notation. La raison de cette divergence reste inconnue.

L’impact distant est plus limité que le risque d’accès root local. DirtyAH6 peut faire planter un routeur ou une passerelle IPv6 qui achemine du trafic IPv6 et ajoute un Authentication Header IPsec en mode transport. Manizada n’a obtenu un accès root à distance qu’après avoir délibérément préparé la mémoire de la cible en laboratoire ; il estime que l’exploitation sans cette préparation est extrêmement difficile.

DiagSpill peut faire planter à distance un système lorsque les options SCTP concernées, désactivées par défaut, sont actives. Aucun moyen viable d’obtenir un accès root à distance n’a été identifié, même dans des conditions favorables de disposition mémoire.

Aucune voie d’exploitation directe à distance n’a été signalée pour TUNderflow ou PPPoEject. Une sortie de conteneur pourrait théoriquement être possible grâce à ces failles, mais aucune n’a été développée ni démontrée.

Les correctifs complets commencent avec des versions stables précises

Les mainteneurs du noyau Linux ont corrigé les quatre défauts. Les premières versions stables upstream signalées comme contenant l’ensemble des correctifs sont les suivantes :

  • 5.10.270
  • 5.15.221
  • 6.1.188
  • 6.6.157
  • 6.12.109
  • 6.18.50
  • 7.2.4

Ces numéros ne doivent pas être comparés mécaniquement aux chaînes de version du noyau indiquées par Debian, Ubuntu, Red Hat, SUSE ou d’autres distributions. Les éditeurs rétroportent généralement les correctifs de sécurité tout en conservant des numéros de version de base plus anciens.

Les administrateurs doivent vérifier que le paquet du noyau de leur distribution inclut les correctifs des quatre CVE. Les plages exactes de versions vulnérables, les versions des paquets des distributions et les identifiants des avis de sécurité des éditeurs ne sont pas connus.

Aucune des quatre vulnérabilités ne figure, à ce jour, dans le catalogue CISA Known Exploited Vulnerabilities et aucune échéance de remédiation KEV ne lui est associée. Cela concorde avec l’absence d’attaques signalées, mais ne réduit pas l’exposition créée par la disponibilité publique du code d’exploitation.

Quels systèmes traiter en priorité

Le déploiement des correctifs doit commencer par les systèmes sur lesquels des utilisateurs non fiables peuvent exécuter du code local ou créer des espaces de noms. Les cibles prioritaires comprennent les plateformes d’hébergement partagé, les serveurs de recherche, les machines de développement, les hôtes de conteneurs et les autres environnements Linux multiutilisateurs.

L’exposition est également plus élevée lorsque les fonctionnalités réseau concernées sont activement utilisées, notamment Open vSwitch, TUN/TAP, PPPoE, IPsec AH6, SCTP, les périphériques team et la gestion déléguée des en-têtes GRE.

À titre de mesures temporaires de réduction des risques, les administrateurs peuvent désactiver les espaces de noms utilisateur non privilégiés et supprimer les fonctionnalités réseau inutilisées. La désactivation d’IPv6 AH6, de TUN/TAP, de PPPoE ou de SCTP peut rendre certains chemins vulnérables inaccessibles.

Ces mesures ne remplacent pas l’installation de noyaux corrigés. D’autres chemins d’exécution peuvent exister, et DiagSpill n’est pas neutralisée par la désactivation des espaces de noms utilisateur.

La surveillance doit porter sur la création inattendue d’espaces de noms, les nouvelles configurations TUN/TAP ou SCTP, les activités inhabituelles d’Open vSwitch et des périphériques team, les shells root inexpliqués et les plantages du noyau impliquant les sous-systèmes concernés. Comme les proofs of concept peuvent déstabiliser un hôte, les erreurs du noyau peuvent constituer un premier signe de test ou d’exploitation infructueuse.

La recherche assistée par IA a mis au jour des erreurs vieilles de plusieurs décennies

Manizada a utilisé une analyse personnalisée assistée par IA pour modéliser le comportement de la mémoire du noyau et raisonner sur la disposition des objets. Le correctif de DirtyAH6 comporte une attribution « Assisted-by » faisant référence à cet outil.

L’origine des erreurs de programmation sous-jacentes remonterait à une période comprise entre 10 et 21 ans. Elles comprennent un champ de paquet non contrôlé, un underflow d’entier suivi d’une conversion avec dépassement en valeur non signée, un pointeur obsolète conservé lors d’une réallocation de mémoire tampon et un débordement de compteur de 16 bits.

Manizada avait également révélé en juillet la vulnérabilité OVSwrap d’Open vSwitch. L’un des nouveaux exploits reprend une technique de Dirty Frag, une autre vulnérabilité root du noyau Linux révélée par un autre chercheur en mai.

La fiabilité des exploits publics reste aujourd’hui limitée. L’évolution la plus importante tient au fait que les attaquants peuvent désormais étudier des chaînes d’exploitation complètes visant quatre failles réseau privilégiées et les adapter aux noyaux de distributions largement déployées. Installer les correctifs permet de fermer cette opportunité de manière plus fiable qu’un simple cloisonnement fondé sur la configuration.

À lire aussi

Sources

Cet article est une réécriture originale fondée sur les sources ci-dessous.

CVE traitées dans cet article

Sujets liésnoyau Linuxexploit Linuxaccès rootvulnérabilité LinuxDirtyAH6TUNderflowcorrectif sécurité
Retour à l'accueil