EN
en direct
Linux Critique CVSS 7.8

Une erreur de calcul dans la fragmentation IPv6 du noyau Linux permet d’échapper au conteneur

Red Hat publie un bulletin pour CVE-2026-53362, une écriture hors limites dans la fragmentation IPv6 du noyau Linux qui permet à un utilisateur local d’échapper au conteneur et de contourner SELinux. Appliquez le noyau corrigé, ou désactivez les user namespaces non privilégiés en attendant.

Un nid d’abeilles de tuiles hexagonales grises où une seule tuile est fissurée et poussée hors de l’alignement, son bord ambré.

CVE-2026-53362. RHEL 10. CVSS 7,8. Le 14 septembre 2026, Red Hat publie un bulletin de sécurité pour une faille surnommée ipv6_frag_escape : un calcul de longueur incorrect dans la fragmentation IPv6 du noyau Linux aboutit à une écriture hors limites qui permet à un utilisateur local, depuis l’intérieur d’un conteneur, d’échapper au conteneur et de contourner SELinux pour obtenir les droits root sur l’hôte. Pourquoi c’est important : c’est exactement la classe de faille qui transforme un simple pod compromis en compromission complète du nœud.

Ce que fait réellement la faille

La vulnérabilité se situe dans __ip6_append_data(), la fonction qui assemble les fragments IPv6 sortants. Quand la branche d’allocation paginée est empruntée — c’est le cas avec MSG_MORE, une carte réseau qui annonce NETIF_F_SG, ou un fragment de grande taille — le noyau calcule deux longueurs : alloclen = fragheaderlen + transhdrlen et pagedlen = datalen - transhdrlen.

Le bogue tient à une omission précise : sur ce chemin paginé, l’écart de fragmentation (fraggap) n’est pas comptabilisé dans alloclen. Le noyau sous-alloue donc le tampon, puis écrit au-delà de ses limites, directement dans skb_shared_info, la structure qui suit chaque paquet en mémoire.

La conséquence n’est pas anodine. Une écriture hors limites dans skb_shared_info peut être enchaînée vers une lecture et une écriture arbitraires du noyau : l’attaquant écrase ses propres credentials, contourne SELinux — dont l’étiquette de sécurité voyage avec le socket — et s’élève au rang de root sur l’hôte. La classification CWE-130 (Improper Handling of Length Parameter Inconsistency) décrit exactement ce mécanisme.

La chaîne d’exploitation

Pour atteindre le code vulnérable, l’attaquant a besoin de deux choses : la capacité de créer des sockets UDPv6, et celle de créer des network namespaces. C’est cette seconde condition qui fait toute la différence.

Sur RHEL 10, la configuration par défaut accorde aux utilisateurs non privilégiés la création de user namespaces. Or un user namespace suffit à créer un network namespace : c’est le mécanisme que Podman en mode rootless et la plupart des bacs à sable utilisent quotidiennement. Résultat : un processus enfermé dans un conteneur peut monter la pile réseau nécessaire à l’exploitation sans disposer du moindre privilège root de départ.

Le déclencheur lui-même passe par un socket UDPv6 manipulé avec les flags MSG_MORE et MSG_SPLICE_PAGES, comme le documente l’analyse publique. L’enchaînement des deux flags force le noyau sur la branche paginée vulnérable, là où le fraggap n’est pas pris en compte. Le correctif amont, le commit 736b380e28d0 intitulé « ipv6: account for fraggap on the paged allocation path », ajoute précisément cette comptabilisation manquante.

Pourquoi RHEL 10 est le cas d’école

Le bulletin RHSB-2026-009 de Red Hat désigne Red Hat Enterprise Linux 10 comme le produit directement affecté, avec des correctifs déjà publiés pour l’ensemble des versions concernées. OpenShift Container Platform, lui, n’est pas affecté : il repose sur RHEL 9, dont le noyau n’expose pas le même chemin.

Le fait qu’un seul produit majeur soit touché ne doit pas rassurer outre mesure. Tout produit en couche qui consomme le noyau RHEL 10 — images de base, appliances, distributions dérivées — hérite de la faille sans que son nom n’apparaisse dans le bulletin. La consigne de Red Hat est sans ambiguïté : maintenir le noyau sous-jacent à jour, quel que soit le produit de couche.

Cette faille est distincte des vulnérabilités dites « Dirty Frag » traitées dans le bulletin RHSB-2026-003CVE-2026-43284 (IPsec ESP) et CVE-2026-46300 (XFRM ESP-in-TCP) — qui affectent d’autres sous-systèmes du même noyau. La coïncidence de trois failles de fragmentation dans le même trimestre souligne une zone du noyau devenue un terrain de chasse privilégié des chercheurs comme des attaquants.

La mitigation, et ce qu’elle casse

En attendant le noyau corrigé, Red Hat propose une parade d’atténuation : désactiver les user namespaces non privilégiés via le paramètre sysctl.

bash
sudo sysctl -w user.max_user_namespaces=0
echo 'user.max_user_namespaces = 0' | sudo tee /etc/sysctl.d/99-disable-userns.conf

Pour revenir en arrière :

bash
sudo rm /etc/sysctl.d/99-disable-userns.conf
sudo sysctl -w user.max_user_namespaces=65534

Cette parade réduit la surface d’attaque, mais elle ne corrige pas le bogue sous-jacent. Et elle a un coût réel : elle casse Podman en mode rootless, ainsi que certains bacs à sable applicatifs qui s’appuient sur les user namespaces non privilégiés. C’est la décision qu’un opérateur doit prendre en connaissance de cause : sur un hôte qui n’exécute que des conteneurs rootless, la parade est pire que la faille ; sur un hôte qui n’en exécute pas, elle est gratuite.

Verdict

CVE-2026-53362 est la faille qu’un RSSI ou un SRE doit traiter avant qu’un exploit public ne circule : l’écriture hors limites est documentée, le correctif est identifié, et la classe de failles — échappement de conteneur vers l’hôte — est celle qui fait le plus de dégâts dans un environnement mutualisé.

Si vous exploitez RHEL 10, appliquez le noyau corrigé dès sa disponibilité dans vos dépôts, sans attendre : c’est la seule correction réelle. Si vous exécutez des conteneurs rootless avec Podman, ne désactivez pas les user namespaces à l’aveugle — priorisez la mise à jour du noyau. Si vous exécutez des workloads non conteneurisés sur des hôtes RHEL 10, la parade user.max_user_namespaces=0 est une protection d’attente raisonnable pendant que le patch se propage. Dans tous les cas, vérifiez la position de vos network namespaces : c’est elle qui décide si un attaquant local peut, oui ou non, atteindre le chemin vulnérable.

Références

cve

Vulnérabilités liées

CVE-2026-53362In the Linux kernel, the following vulnerability has been resolved: ipv6: account for fraggap on the paged allocation path In __ip6_append_data(), when the paged-allocation branch is taken (MSG_MORE / NETIF_F_SG / large fraglen), alloclen and pagedlen are computed as alloclen = fragheaderlen + transhdrlen; pagedlen = datalen - transhdrlen; datalen already includes fraggap (datalen = length + fraggap). When fraggap is non-zero, this is not the first skb and transhdrlen is zero. The fraggap bytes carried over from the previous skb are copied just past the fragment headers in the new skb's linear area. The linear area is therefore undersized by fraggap bytes while pagedlen is overstated by the same amount, and the copy writes past skb->end into the trailing skb_shared_info. An unprivileged user can trigger this via a UDPv6 socket using MSG_MORE together with MSG_SPLICE_PAGES. The bad accounting was introduced by commit 773ba4fe9104 ("ipv6: avoid partial copy for zc"). Before commit ce650a166335 ("udp6: Fix __ip6_append_data()'s handling of MSG_SPLICE_PAGES"), the negative copy value caused -EINVAL to be returned. That later commit allowed MSG_SPLICE_PAGES to proceed in this case, making the corruption triggerable. The non-paged branch sets alloclen to fraglen, which already accounts for fraggap because datalen does. Bring the paged branch in line by adding fraggap to alloclen and subtracting it from pagedlen. After this adjustment, copy no longer collapses to -fraggap on the paged path, so remove the stale comment describing that old arithmetic. Since a negative copy is no longer expected for a valid MSG_SPLICE_PAGES case, remove the MSG_SPLICE_PAGES exception from the negative copy check.Linux Kernel Critique CVSS 7.8 27/08

Le brief cyber, chaque mardi

Les failles qui comptent, les correctifs à appliquer, en dix minutes de lecture.

Pas de spam. Désinscription en un clic.
à lire ensuite

Sur le même sujet

GNU Coreutils 9.12 accélère cut et uniq et corrige une course des options récursives

La version 9.12 de GNU Coreutils, publiée le 14 septembre 2026, livre des gains mesurés — cut jusqu’à 4× plus rapide, uniq jusqu’à 2,5× — et corrige une course qui faisait échouer les commandes -R face à des fichiers supprimés en parallèle. Une sortie de maintenance qui rappelle que la boîte à outils GNU reste, face à sa réécriture Rust, le socle par défaut des distributions.

GhostLock donne root en cinq secondes via un use-after-free de quinze ans dans rtmutex

CVE-2026-43499, baptisée GhostLock, est un use-after-free dans le code d’héritage de priorité de rtmutex, présent depuis le noyau 2.6.39 et exploitable par n’importe quel processus local non privilégié. Le correctif est dans la 7.1, mais deux mois après le PoC, quelques angles morts comme le kernel-rt de RHEL 9 subsistent : vérifiez votre version et bloquez les futex PI en attendant.

← Retour au fil

Tapez au moins deux caractères.

naviguer ouvrir esc fermer