Fragnesia en bref : une faille de mai redevenue urgente
Fragnesia est le nom donné à CVE-2026-46300, une faille du noyau Linux divulguée le 13 mai 2026 avec une preuve de concept publique. Le défaut tient en une phrase : la fonction skb_try_coalesce() perd le marqueur qui signale un fragment partagé, si bien que le déchiffrement ESP s'exécute en place sur des pages du page cache. Un processus sans privilège peut alors modifier en mémoire un fichier pourtant en lecture seule, comme /usr/bin/su, et obtenir root. Le score CVSS 3 est de 7,8, et Ubuntu classe la faille en priorité High. Les correctifs existent depuis mai : AlmaLinux les a mis en production le 16 mai 2026. Ce qui change fin octobre 2026, c'est le contexte, car la CISA a inscrit la faille à son catalogue des vulnérabilités exploitées le 28 octobre 2026.
L'essentiel avant d'ouvrir un terminal
- Local, pas distant — Fragnesia ne s'attaque pas depuis internet : l'attaquant doit déjà exécuter du code sur la machine. C'est l'étape qui suit une intrusion web.
- Noyau actif, pas noyau installé — un paquet à jour ne protège rien tant que la machine n'a pas redémarré dessus.
- Des noyaux corrigés existent — Ubuntu, Debian, AlmaLinux et CloudLinux ont publié leurs versions ; la table plus bas les liste.
- Une parade existe, avec un prix — bloquer trois modules (esp4, esp6, rxrpc) ferme la voie, mais coupe IPsec et AFS.
- Un pont, pas une solution — la parade tient jusqu'au redémarrage sur le noyau corrigé, pas au-delà.
Pourquoi PHP2Shell change le calendrier
Une élévation de privilèges locale ne se déclenche pas toute seule : il faut d'abord un point d'entrée. Sur un serveur d'agence, il est tout trouvé, c'est un site PHP. PHP2Shell désigne deux failles de l'interpréteur, CVE-2026-109618 et CVE-2026-109619, qui permettent d'exécuter du code sans authentification. Le webshell tourne alors sous le compte du site, sans privilège. Fragnesia est la marche suivante : elle fait passer ce compte à root. La société Dream rapporte avoir observé cette combinaison dans une campagne visant des pare-feu ; c'est le récit d'un seul éditeur, que la CISA ne confirme pas. Côté CISA, CVE-2026-46300 figure au catalogue avec une échéance au 31 octobre 2026 et un triage forensique demandé aux agences américaines. Retenez surtout ceci : corriger PHP ferme l'entrée, pas l'escalade. Un serveur visité avant le correctif PHP reste dangereux tant que son noyau n'est pas à jour. Le guide PHP2Shell lié sous cet article détaille le premier volet.
Noyaux corrigés par distribution
Faites défiler le tableau
| Distribution | Noyau corrigé (ou plus récent) | À savoir |
|---|---|---|
| Ubuntu 22.04 LTS | 5.15.0-181.191 | `uname -r` affiche 5.15.0-181-generic |
| Ubuntu 24.04 LTS | 6.8.0-124.124 | `uname -r` affiche 6.8.0-124-generic |
| Ubuntu 25.10 et 26.04 LTS | 6.17.0-35.35 et 7.0.0-22.22 | Une version par release ; la 26.10 n'est pas affectée |
| Debian 12 (bookworm) | 6.1.190-1 | Dépôt security ; `uname -v` affiche la version du paquet |
| Debian 13 (trixie) | 6.12.113-1 | Dépôt security ; même lecture avec `uname -v` |
| AlmaLinux 8, 9 et 10 | 4.18.0-553.124.3.el8_10 ; 5.14.0-611.54.5.el9_7 ; 6.12.0-124.56.3.el10_1 | En production depuis le 16 mai 2026 |
| CloudLinux 7h et 8 | 4.18.0-553.124.3.lve.el7h ; 4.18.0-553.124.3.lve.el8 | CloudLinux 9 et 10 reprennent les noyaux AlmaLinux ; vérifier le canal de diffusion |
| Non affectés | Ubuntu 20.04 LTS et antérieures, CloudLinux 7 | Rien à corriger sur ces versions |
Noyau installé n'est pas noyau actif
C'est le piège qui transforme un « tout est à jour » en serveur encore vulnérable. Installer un paquet noyau dépose de nouveaux fichiers dans /boot, mais le noyau en mémoire reste celui du dernier démarrage. Tant que la machine n'a pas redémarré, apt ou dnf peuvent afficher un système à jour pendant que uname -r répond encore avec l'ancien numéro. C'est fréquent sur un parc, pour une raison simple : personne n'aime redémarrer un serveur qui porte des sites clients, donc le redémarrage attend. Deux repères évitent la confusion. Sur Ubuntu, le numéro de la table s'écrit en deux parties : 5.15.0-181.191 correspond à 5.15.0-181-generic dans uname -r. Sur Debian, uname -r montre l'ABI du noyau, pas la version du paquet ; c'est uname -v qui affiche la version complète, par exemple « Debian 6.1.190-1 ».
Vérifier l'exposition d'un serveur en dix minutes
Relever le noyau en cours
uname -rpuisuname -v. Notez le résultat machine par machine : c'est la seule valeur qui compte, pas celle du gestionnaire de paquets. Comparez-la à la table ci-dessus.Lister les noyaux installés
Debian et Ubuntu :
dpkg -l 'linux-image*'. AlmaLinux et CloudLinux :rpm -q kernel. Si un noyau corrigé est installé mais queuname -raffiche un autre numéro, le serveur n'a pas redémarré : il est exposé.Repérer les redémarrages en attente
Sur AlmaLinux et CloudLinux,
sudo needs-restarting -rindique si un redémarrage est nécessaire. Sur Ubuntu, la présence du fichier/var/run/reboot-requiredsignale la même chose.Regarder les modules concernés
lsmod | grep -E 'esp4|esp6|rxrpc'. Un résultat vide ne rend pas le serveur sûr : un module absent peut se charger à la demande. Il dit seulement qu'il n'est pas chargé à cet instant.Vérifier rxrpc sur AlmaLinux 9 et 10
rpm -q kernel-modules-partner. Sur ces deux versions, le module rxrpc n'est exposé que si ce paquet est installé ; AlmaLinux 8 ne construit pas ce module.Repérer les passerelles VPN
systemctl list-units | grep -Ei 'strongswan|libreswan|ipsec'. Dressez la liste des machines qui terminent ou font transiter des tunnels IPsec, ou qui utilisent AFS : la parade plus bas leur est contre-indiquée.
Mettre à jour le noyau, par environnement
Debian et Ubuntu
sudo apt update && sudo apt full-upgradepuissudo reboot. On utilisefull-upgradeparce qu'un nouveau noyau arrive comme un nouveau paquet, queupgradeseul peut laisser de côté.AlmaLinux et autres RHEL
sudo dnf clean metadata && sudo dnf upgradepuissudo reboot. Après le redémarrage,rpm -q kerneldoit lister un noyau au moins égal à celui de la table.CloudLinux
Sur CloudLinux 9 et 10, les noyaux d'AlmaLinux s'appliquent : même commande qu'au-dessus. Sur CloudLinux 7h et 8, le noyau corrigé est un noyau CloudLinux diffusé par canal ; l'article de CloudLinux, lié en fin de page, dit si votre canal le propose. Ensuite
sudo yum update 'kernel*', puissudo reboot.Conteneurs Docker
Un conteneur n'a pas de noyau propre : il utilise celui de l'hôte. Reconstruire une image ne corrige rien ici, alors que mettre à jour l'hôte puis le redémarrer protège tous ses conteneurs d'un coup. Ubuntu mentionne aussi une évasion de conteneur possible : ne repoussez pas ce point. Les images PHP à reconstruire pour PHP2Shell relèvent d'un autre guide.
Contrôler après le redémarrage
uname -r(etuname -vsous Debian) doit afficher un numéro égal ou supérieur à celui de la table. Lancez ensuitesudo systemctl --failedpour repérer les services qui n'ont pas repris.
Parade ou noyau : l'arbitrage selon le rôle du serveur
Redémarrer coupe les sites, et l'objection est légitime. La parade existe pour cela : elle bloque le chargement de esp4, esp6 et rxrpc, les trois modules par lesquels passe la faille, sans redémarrage. Son prix est précis. ESP est le protocole de chiffrement d'IPsec et rxrpc sert AFS ; si le serveur termine ou fait transiter des tunnels IPsec (strongSwan, Libreswan) ou monte de l'AFS, la parade les casse, et AlmaLinux l'écrit sans détour. Règle simple : sur un serveur web sans VPN, parade tout de suite puis noyau au prochain créneau ; sur une passerelle VPN, noyau corrigé sur un créneau de redémarrage, sans parade. Dans les deux cas, la parade n'est qu'un pont jusqu'au redémarrage sur le noyau corrigé. AlmaLinux précise aussi que la parade publiée pour Dirty Frag couvre déjà Fragnesia : si elle est en place, il n'y a rien à ajouter.
Appliquer la parade, la vérifier, l'annuler
Écrire le fichier et décharger les modules
sudo sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/fragnesia.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
La commande crée/etc/modprobe.d/fragnesia.conf, qui interdit le chargement des trois modules, puis décharge ceux qui l'étaient.Vérifier
lsmod | grep -E 'esp4|esp6|rxrpc'ne doit rien renvoyer. La parade survit au redémarrage tant que le fichier existe.Vider le page cache si la machine a pu être visée
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches". Les binaires sont rechargés depuis le disque. Si vous voulez conserver des preuves, faites d'abord les contrôles de la section suivante.Annuler la parade
Une fois la machine redémarrée sur le noyau corrigé :
sudo rm /etc/modprobe.d/fragnesia.conf. Si une parade Dirty Frag était déjà posée sous un autre nom de fichier, elle suit son propre cycle.
KernelCare, pour les serveurs qu'on ne peut pas redémarrer
Si le serveur utilise KernelCare (correctif à chaud du noyau), kcarectl --update applique le correctif sans redémarrage, et kcarectl --patch-info | grep CVE-2026-46300 confirme sa présence. CloudLinux indique un déploiement complet pour les variantes AlmaLinux ELS et FIPS, la famille EL8, Debian 11 et 12 et Ubuntu Jammy, sans citer explicitement CloudLinux 9 et 10 standard. Ne généralisez pas : vérifiez par distribution, et si la commande ne renvoie rien, retombez sur la parade ou sur le noyau.
Chercher les traces avant de redémarrer
Un serveur patché depuis mai n'est pas concerné ; un serveur jamais redémarré l'est, et s'il a porté un site PHP vulnérable, il a pu être visité. L'altération se fait dans le page cache : elle n'écrit pas forcément sur disque, et un redémarrage ou drop_caches l'efface. Faites donc vos contrôles d'abord. Trois pistes. Les fichiers .php récents sous les racines web : sudo find /var/www /home -name '*.php' -mtime -7 -type f, à adapter à vos chemins. Les binaires setuid inattendus : sudo find / -xdev -perm -4000 -type f -mtime -30. L'intégrité des paquets : rpm -V util-linux sur la famille RHEL, sudo debsums -s util-linux sur Debian et Ubuntu après apt install debsums ; le paquet util-linux fournit /usr/bin/su, la cible citée par AlmaLinux. Un résultat suspect ne se nettoie pas à la main : isolez la machine et traitez-la comme compromise.
Pour une agence : un créneau commun, pas un serveur à la fois
Le temps ne se perd pas dans la commande, mais à savoir quelle machine porte quels clients, laquelle est une passerelle VPN et quand elle peut redémarrer. Établissez un tableau par serveur : noyau en cours, noyau installé, rôle (web, VPN, base de données), parade posée ou non. Triez ensuite en trois lots : les serveurs web simples, parade immédiate puis noyau au créneau ; les passerelles, noyau au créneau sans parade ; les machines déjà à jour, simple contrôle du noyau en cours. Prévenez les clients une seule fois, sur un créneau commun, plutôt que machine par machine. La méthode de redémarrage d'un VPS qui porte des sites clients est détaillée dans le guide PwnEscape et Vghost lié sous cet article, inutile de la répéter ici. Ce guide est fourni tel quel : l'administration de vos serveurs reste de votre ressort, sans prise en charge de notre part.
La documentation officielle
Fiche Ubuntu de CVE-2026-46300: https://ubuntu.com/security/CVE-2026-46300
Suivi de sécurité Debian: https://security-tracker.debian.org/tracker/CVE-2026-46300
Avis AlmaLinux sur Fragnesia: https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/
Article CloudLinux (noyaux et KernelCare): https://blog.cloudlinux.com/fragnesia-mitigation-and-kernel-update
Alerte CISA du 28 octobre 2026: https://www.cisa.gov/news-events/alerts/2026/10/28/cisa-adds-two-known-exploited-vulnerabilities-catalog
Compte rendu SecurityWeek sur la chaîne PHP2Shell: https://www.securityweek.com/china-linked-hackers-exploit-php2shell-to-root-firewalls/
Correctif amont dans le noyau: https://git.kernel.org/linus/f84eca5817390257cef78013d0112481c503b4a3