PHP a publié le 21/10/2026 les versions 8.5.12, 8.4.27, 8.3.36 et 8.2.35, qui corrigent PHP2Shell, le nom donné à deux vulnérabilités critiques de l’interpréteur (CVE-2026-109618 et CVE-2026-109619) permettant l’exécution de code sur le serveur sans authentification. Quelques heures plus tard, les principales distributions et certains panneaux d’hébergement ont commencé à distribuer des paquets corrigés, avec des rythmes très variables. Parallèlement, plusieurs sociétés de sécurité ont signalé des tentatives d’exploitation, rendant la fenêtre pour appliquer les mises à jour très courte.
Les clés de PHP2Shell et ses correctifs en 30 secondes
- PHP corrige PHP2Shell dans les versions 8.5.12, 8.4.27, 8.3.36 et 8.2.35 ; les branches 8.1 et antérieures ne reçoivent que des backports tiers.
- Ubuntu, Debian 13, RHEL 9 (php:8.2), DirectAdmin et Plesk sous Linux disposent déjà de paquets corrigés.
- AlmaLinux, CloudLinux et cPanel étaient en train de préparer leurs correctifs ; Remi ne les aurait pas le jour même.
- Cloudflare, Patchstack et watchTowr mentionnent des attaques ou tentatives d’exploitation.
- Les mesures temporaires réduisent le risque, mais seule la mise à jour élimine la vulnérabilité.
Les vulnérabilités ont été découvertes par Wiz Research, OpenAI Codex Security et la société Calif, et coordonnées par l’équipe de sécurité de PHP ainsi que l’équipe Gemini de Google. Wiz a créé un site dédié, php2shell.com, avec le résumé technique et des recommandations. Son existence a été filtrée le 20/10/2026, un jour avant le correctif, et les médias de ce groupe l’ont relayé depuis : sur OpenSecurity, on expliquait comment les deux vulnérabilités critiques de PHP ont été révélées avant la correction, sur Administracion de Sistemas une guide rapide pour sysadmins et sur WPDirecto un article sur l’impact pour WordPress. Une version en anglais pour les administrateurs est aussi disponible sur SystemAdministration.net.
Qu’est-ce que PHP2Shell et qui est concerné
Les deux vulnérabilités concernent directement PHP, non les applications. Ainsi, un WordPress, un Drupal ou une boutique bien maintenus peuvent aussi être vulnérables. Selon le rapport de PHP, CVE-2026-109618 survient lorsque la gestion de la mémoire insuffisante interrompt PHP avec des données internes d’une requête à moitié initialisées, et que le nettoyage ultérieur les considère comme valides. CVE-2026-109619 se manifeste lorsqu’un état interne lié à une requête survit à la libération de la mémoire, et qu’une nouvelle requête dans le même processus la réutilise. Ces vulnérabilités sont évaluées à 9,2/10 dans CVSS v4.0.
Elles concernent toutes les installations PHP servant des requêtes web : PHP-FPM, Apache avec mod_php, php-cgi, FrankenPHP et LiteSpeed. La vulnérabilité la plus critique est dans mod_php, où un exploit démontré permet, sans authentification, qu’une requête déclenche l’attaque avant même l’exécution de tout code applicatif (voir en revue Cloud la différence entre mod_php, CGI, FastCGI et FPM dans cet article). Selon php2shell.com, des chercheurs ont démontré une exécution à distance de code en mode non authentifié sur WordPress, Drupal et Joomla, et le site indique que presque toutes les versions depuis PHP 5.4 étaient vulnérables à au moins l’un des deux bogues. Outre l’exécution de code, un attaquant pourrait également lire la mémoire du processus, y compris mots de passe, tokens ou clés API.
Red Hat offre une évaluation plus modérée : la vulnérabilité y est jugée importante mais pas critique, car ses installations standard utilisent PHP-FPM et non mod_php, et dans ce cas, l’exploitation distante est difficile en pratique, car elle nécessite souvent un comportement inhabituel de l’application.
Attaques : ce que disent Cloudflare, Patchstack et watchTowr
Cloudflare indique avoir observé du trafic d’attaques contre ses clients après la fuite d’informations, avant la diffusion du correctif, avec des attaquants modifiant leur charge utile pour tenter d’esquiver leurs règles. Patchstack mentionne des incidents d’exploitation active confirmés à partir de 07h34 UTC le 21/10/2026, tandis que watchTowr signale des tentatives d’exploitation des deux CVE. En revanche, Huntress n’a pas détecté d’exploitation auprès de sa clientèle à la mi-journée du même jour. Le Centre national de la cybersécurité britannique (NCSC) a même recommandé de déconnecter les systèmes non protégés. BleepingComputer cite une estimation de VirusTotal indiquant plus de 5,1 millions de serveurs PHP exposés à Internet.
Distributions Linux : qui a déjà publié ses correctifs
PHP a diffusé ses correctifs en avance aux distributions et fournisseurs de support prolongé, mais tous ne les ont pas publiés simultanément. À la date de rédaction, le 21/10/2026, la situation était la suivante :
- Ubuntu : l’alerte USN-8948-1 corrige PHP pour Ubuntu 26.10, 26.04 LTS (PHP 8.5), 24.04 LTS (PHP 8.3) et 22.04 LTS (PHP 8.1). Ubuntu conserve le numéro de version d’origine et applique la correction comme patch, il faut donc vérifier la révision du paquet (par exemple, 8.3.6-0ubuntu0.24.04.13 pour 24.04), plutôt que ce que montre la commande
php -v. - Debian : l’alerte DSA-6574-1 met à jour php8.4 sous Debian 13 (trixie) en version 8.4.27-1~deb13u1. Pour Debian 12 (bookworm), avec PHP 8.2, le correctif n’était pas encore publié dans le suivi sécurité.
- Répertoire d’Ondřej Surý (packages.sury.org et PPA, très utilisé en Debian et Ubuntu) : il a publié des versions corrigées de 8.2 à 8.5 et des backports pour les branches anciennes, de PHP 8.1 à 5.6. Il est conseillé de consulter le changelog de ces backports avant leur déploiement.
- Red Hat Enterprise Linux : l’alerte RHSA-2026:87072 met à jour le module php:8.2 de RHEL 9 en PHP 8.2.35. Aucun autre avis n’a été publié pour les autres versions de PHP.
- AlmaLinux : a annoncé qu’il publiera les paquets en version de test le jour même, en avance sur Red Hat, pour les branches 7.4 et 8.2 d’AlmaLinux 8, et pour PHP 8.0, 8.2 et 8.3 sur AlmaLinux 9, ainsi que PHP 8.3 et 8.4 sur AlmaLinux 10.
- Répertoire de Remi (RHEL, AlmaLinux et Rocky) : l’alerte de PHP indique qu’aucune mise à jour ne sera disponible le 21/10/2026, et conseille de passer aux paquets de la distribution ou de compiler à partir du source.
- CloudLinux : préparait ses paquets alt-php, et en attendant, a publié la règle Imunify360 8.83, qui bloque la forme d’exploitation circulant, présentée comme un correctif virtuel, sans garantie de solution complète.
Pour ceux qui compile PHP à partir du source sans support professionnel, l’équipe de PHP a publié des backports minimums pour 7.4, 8.0 et 8.1, branches qui ne reçoivent plus de mises à jour officielles. Le message rappelle aussi que PHP 8.2 ne sera plus supporté après le 31/12/2026.
Hébergements et plateformes managées
- Plesk : pour Linux, distribue déjà PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35 par le canal habituel ; la version pour Windows ainsi que celles pour PHP 7.4, 8.0 et 8.1 sont en cours de développement. Le moteur PHP intégré au panneau (sw-engine) est aussi concerné, et Plesk prévoit de le corriger avec les hotfixes 18.0.80#11 et 18.0.81#4.
- DirectAdmin : a publié, dans ses canaux current et stable, une compilation mettant à jour PHP 8.2 vers 8.5, et proposant des correctifs pour 8.1, 8.0 et 7.4. L’installation se fait avec
da updateetda build phpsi la mise à jour automatique via CustomBuild n’est pas activée. Son équipe signale que PHP 8.1 ne compile pas correctement sous certains systèmes avec le correctif, et qu’il n’existe pas encore de correctifs pour PHP 5.6 à 7.3. - cPanel : selon le suivi en direct de Precursor Security, préparait la mise à jour d’ea-php74 à ea-php85, et les anciennes versions pourraient être corrigées via les backports de CloudLinux.
- LiteSpeed et OpenLiteSpeed : PHP est concerné dans cette solution. Les paquets lsphp se mettent à jour depuis le dépôt LiteSpeed, et un redémarrage des processus lsphp est nécessaire. À la clôture de cet article, aucune communication publique de la part de l’entreprise avec des versions corrigées n’avait été publiée.
- RunCloud : aucune annonce publique à ce stade. Les utilisateurs doivent vérifier leurs versions php depuis le panneau et appliquer les correctifs dès qu’ils sont disponibles.
- Google Cloud : App Engine standard avec PHP 8.2 ou supérieur s’est mis à jour automatiquement. De même, Cloud Run et Cloud Run functions, si leurs images de base disposent des mises à jour automatiques. En revanche, App Engine flexible, GKE et les conteneurs personnalisés doivent être reconstruits et redéployés.
- Images Docker : il ne suffit pas de redémarrer un conteneur ; il faut télécharger l’image corrigée ou la reconstruire avec
docker build --pullpuis redéployer.
Dans tous les cas, l’étape la plus souvent oubliée est le redémarrage : les processus PHP-FPM, Apache avec mod_php ou lsphp, déjà en fonctionnement, continuent d’utiliser le binaire vulnérable jusqu’au redémarrage effectif.
Comment atténuer le risque en attendant la mise à jour
Les recommandations de PHP et php2shell.com proposent plusieurs mesures pour ceux ne pouvant pas mettre à jour immédiatement, tout en avertissant : ces mesures réduisent l’exposition, mais ne sécurisent pas totalement l’installation.
- Pour CVE-2026-109618 : fixer
memory_limit=-1, de préférence viaphp_admin_valuedans le pool PHP-FPM ou la configuration Apache, et vérifier qu’aucune autre configuration ne le réimpose. Comme le processus perd tout limite, il est conseillé de le contrôler avec un plafond de conteneur ou de cgroup v2 (memory.max). Éviter l’utilisation deRLIMIT_ASouRLIMIT_DATA, qui peuvent favoriser la vulnérabilité. - Réduire
post_max_sizeà 8 Mo si la site ne reçoit pas de fichiers, ou à 32 Mo s’il en reçoit, avecupload_max_filesizeinférieur. Limiter la taille des requêtes, des champs et des parties multipart via le serveur web ou le proxy. - Pour CVE-2026-109619 : désactiver
session.upload_progress.enableddans lephp.ini, le pool FPM ou la configuration du serveur, puis redémarrer tous les processus. Cela ne fonctionne pas avecini_set()ou.user.ini. - Sur PHP 8.5, fixer
fatal_error_backtraces=0. Cacher les erreurs avecdisplay_errors,error_reportingou@n’évite pas l’exploitation. - Activer les règles d’un pare-feu applicatif. Cloudflare les applique depuis 03h02 UTC le 21/10/2026, avec notamment les règles «Generic Rules – Anomalous Execution» et une règle par défaut pour les signatures de grande confiance. Sur les plans payants, vérifier que le mode sécurité est actif.
; Mesures temporaires (php.ini ou pool PHP-FPM)
session.upload_progress.enabled = 0
post_max_size = 8M
; En pool : php_admin_value[memory_limit] = -1
; Pour PHP 8.5 seulement :
fatal_error_backtraces = 0
Pour détecter une compromission éventuelle, Huntress recommande de surveiller les processus enfants suspects de PHP-FPM, php-cgi ou Apache, comme shells, curl, wget ou commandes de reconnaissance (whoami, uname), ainsi que les fichiers nouveaux en racine web, les tâches cron et les comptes récents. watchTowr conseille de sauvegarder journaux et configurations avant toute manipulation en cas de suspicion.
Questions fréquentes
Quelles versions de PHP corrigent PHP2Shell ?
PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35, publiées le 21/10/2026. Les branches 8.1 et antérieures ne reçoivent que des backports ou des correctifs minimums de distributions, support étendu ou compilation manuelle.
Ubuntu est-il protégé contre PHP2Shell ?
Oui. L’alerte USN-8948-1 corrige PHP pour Ubuntu 26.10, 26.04 LTS, 24.04 LTS et 22.04 LTS. Ubuntu garde le même numéro de version, donc il faut vérifier la révision du paquet, pas simplement php -v.
Plesk et DirectAdmin ont-ils déjà corrigé PHP ?
Plesk diffuse en Linux les versions 8.2.35 à 8.5.12 et prépare celles pour Windows ainsi que pour les branches anciennes. DirectAdmin a publié une mise à jour avec PHP 8.2-8.5 corrigé et paré pour 8.1, 8.0 et 7.4.
Est-ce suffisant de désactiver session.upload_progress ?
Non. Cela ne bloque qu’un vecteur confirmé de CVE-2026-109619. PHP insiste sur le fait que seul une mise à jour complète suffit, et qu’il faut redémarrer tous les processus PHP après.
Sources :
- PHP2Shell (Wiz Research, OpenAI Codex Security et Calif)
- PHP : avis de sécurité du 21/10/2026
- PHP : GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- PHP : GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- OpenSecurity : PHP corrige deux vulnérabilités critiques révélées avant le patch
- Administracion de Sistemas : guide rapide pour sysadmins
- WPDirecto : vulnérabilités critiques en PHP, consignes pour WordPress
- SystemAdministration.net : Vulnérabilités PHP critiques, guide d’administration
- Ubuntu : USN-8948-1, vulnérabilités PHP
- Debian : DSA-6574-1, php8.4
- Red Hat : RHSA-2026:87072, php:8.2
- Red Hat : CVE-2026-109618
- AlmaLinux : php2shell, correctifs en cours
- LinuxCompatible : Sury.org publie des mises à jour pour PHP 5.6 à 8.5
- CloudLinux : règles Imunify360 8.83
- Plesk : CVE-2026-109618 et CVE-2026-109619 dans PHP de Plesk
- DirectAdmin : forum, mises à jour critiques PHP
- Precursor Security : suivi en direct de PHP2Shell
- Google Cloud : réponse à CVE-2026-109618 et CVE-2026-109619
- Cloudflare : protections du WAF contre PHP2Shell
- Mattias Geniar : comment appliquer les correctifs
- BleepingComputer : PHP publie des correctifs d’urgence pour les failles critiques de PHP2Shell
- watchTowr : PHP2Shell, exécution de code à distance exploitée
- Patchstack : PHP vulnérable à une RCE critique, attaques en cours
- Huntress : php2shell, réponse rapide