Tutoriel

Fragnesia CVE-2026-46300 : patcher le noyau (PHP2Shell)

Sécurité & Monitoring10 min de lecture15 étapes

Le 28 octobre 2026, la CISA a ajouté CVE-2026-46300, alias Fragnesia, à son catalogue des vulnérabilités exploitées. La faille du noyau Linux date de mai, son correctif aussi, mais elle redevient urgente : enchaînée avec PHP2Shell, elle transforme un site PHP compromis en serveur entièrement compromis, donc en tous les sites clients qu'il porte. Ce guide donne le moyen de savoir en dix minutes quels serveurs tournent encore sur un noyau vulnérable, la mise à jour par distribution, la parade si le redémarrage doit attendre, et les traces à chercher.

Sommaire· Fragnesia en bref : une faille de mai redevenue urgente1/13
  1. 01Fragnesia en bref : une faille de mai redevenue urgente
  2. 02L'essentiel avant d'ouvrir un terminal
  3. 03Pourquoi PHP2Shell change le calendrier
  4. 04Noyaux corrigés par distribution
  5. 05Noyau installé n'est pas noyau actif
  6. 06Vérifier l'exposition d'un serveur en dix minutes
  7. 07Mettre à jour le noyau, par environnement
  8. 08Parade ou noyau : l'arbitrage selon le rôle du serveur
  9. 09Appliquer la parade, la vérifier, l'annuler
  10. 10KernelCare, pour les serveurs qu'on ne peut pas redémarrer
  11. 11Chercher les traces avant de redémarrer
  12. 12Pour une agence : un créneau commun, pas un serveur à la fois
  13. 13La documentation officielle

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

DistributionNoyau corrigé (ou plus récent)À savoir
Ubuntu 22.04 LTS5.15.0-181.191`uname -r` affiche 5.15.0-181-generic
Ubuntu 24.04 LTS6.8.0-124.124`uname -r` affiche 6.8.0-124-generic
Ubuntu 25.10 et 26.04 LTS6.17.0-35.35 et 7.0.0-22.22Une version par release ; la 26.10 n'est pas affectée
Debian 12 (bookworm)6.1.190-1Dépôt security ; `uname -v` affiche la version du paquet
Debian 13 (trixie)6.12.113-1Dépôt security ; même lecture avec `uname -v`
AlmaLinux 8, 9 et 104.18.0-553.124.3.el8_10 ; 5.14.0-611.54.5.el9_7 ; 6.12.0-124.56.3.el10_1En production depuis le 16 mai 2026
CloudLinux 7h et 84.18.0-553.124.3.lve.el7h ; 4.18.0-553.124.3.lve.el8CloudLinux 9 et 10 reprennent les noyaux AlmaLinux ; vérifier le canal de diffusion
Non affectésUbuntu 20.04 LTS et antérieures, CloudLinux 7Rien à 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

  1. Relever le noyau en cours

    uname -r puis uname -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.

  2. 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 que uname -r affiche un autre numéro, le serveur n'a pas redémarré : il est exposé.

  3. Repérer les redémarrages en attente

    Sur AlmaLinux et CloudLinux, sudo needs-restarting -r indique si un redémarrage est nécessaire. Sur Ubuntu, la présence du fichier /var/run/reboot-required signale la même chose.

  4. 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.

  5. 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.

  6. 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

  1. Debian et Ubuntu

    sudo apt update && sudo apt full-upgrade puis sudo reboot. On utilise full-upgrade parce qu'un nouveau noyau arrive comme un nouveau paquet, que upgrade seul peut laisser de côté.

  2. AlmaLinux et autres RHEL

    sudo dnf clean metadata && sudo dnf upgrade puis sudo reboot. Après le redémarrage, rpm -q kernel doit lister un noyau au moins égal à celui de la table.

  3. 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*', puis sudo reboot.

  4. 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.

  5. Contrôler après le redémarrage

    uname -r (et uname -v sous Debian) doit afficher un numéro égal ou supérieur à celui de la table. Lancez ensuite sudo systemctl --failed pour 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

  1. É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.

  2. Vérifier

    lsmod | grep -E 'esp4|esp6|rxrpc' ne doit rien renvoyer. La parade survit au redémarrage tant que le fichier existe.

  3. 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.

  4. 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

Un parc de sites à patcher sur un seul créneau

Un parc de sites clients se patche mieux quand les machines sont regroupées et visibles d'un seul endroit : un créneau commun, un tableau unique. La relation client reste chez l'agence, l'infrastructure chez ServOrbit.com.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet