En bref
- Vulnérabilités :
CVE-2026-109618etCVE-2026-109619, connues publiquement sous le nom de PHP2Shell, publiées par l’équipe de sécurité de PHP le 21 octobre 2026. - Gravité : critique, avec un score de 9,2 (CVSS v4.0) pour chacune. Toutes deux peuvent permettre l’exécution de code à distance sans authentification.
- Systèmes concernés : les installations PHP qui traitent des requêtes web. Les chercheurs ont identifié des versions affectées remontant jusqu’à PHP 5.4.
- Correction : mettre à jour PHP. Le projet PHP indique qu’il n’existe aucune mesure d’atténuation complète et que la mise à jour est la seule option sûre.
En quoi consistent les vulnérabilités
Les deux failles sont des bogues de sécurité mémoire dans l’environnement d’exécution PHP, et non dans WordPress, Drupal, Laravel ou les autres applications qui reposent sur lui. Un site peut être exposé même lorsque son propre code et ses extensions sont entièrement à jour.
- Corruption en cas de mémoire insuffisante,
CVE-2026-109618: un épuisement de la mémoire peut interrompre PHP alors que les données internes de la requête ne sont que partiellement initialisées. Le nettoyage de la requête peut alors traiter ces données invalides comme valides. - État de requête obsolète,
CVE-2026-109619: un état interne propre à une requête peut survivre à la mémoire qui le porte. Une requête ultérieure traitée par le même processus de travail PHP peut utiliser cet état obsolète, ce qui peut exposer la mémoire du processus ou conduire à l’exécution de code.
Les chercheurs ont démontré une exécution de code à distance sans authentification contre WordPress et Drupal, ainsi que contre Joomla pour la première faille. Une application minimale « Hello World » fonctionnant sur un environnement PHP affecté peut également être exposée.
Qui est concerné
Selon l’avis de sécurité PHP, ces failles touchent toutes les installations PHP qui traitent des requêtes web, notamment PHP-FPM, Apache avec mod_php, php-cgi, FrankenPHP et LiteSpeed. Apache avec mod_php présente le risque le plus élevé : un exploit démontré déclenche l’attaque au moyen d’une requête non authentifiée, avant même l’exécution du moindre code applicatif.
PHP 8.1 et les versions antérieures ne reçoivent plus de mises à jour du projet PHP. L’avis renvoie vers des rétroportages minimaux du code source pour PHP 7.4, 8.0 et 8.1, mais il est préférable de migrer les anciens environnements vers une version prise en charge.
Versions corrigées
Les versions antérieures de chaque branche prise en charge doivent être considérées comme vulnérables.
| Branche PHP | Vulnérable | Corrigé dans |
|---|---|---|
| 8.5 | Antérieure à 8.5.12 | 8.5.12 |
| 8.4 | Antérieure à 8.4.27 | 8.4.27 |
| 8.3 | Antérieure à 8.3.36 | 8.3.36 |
| 8.2 | Antérieure à 8.2.35 | 8.2.35 |
PHP 8.2 arrive en fin de vie le 31 décembre 2026.
Paquets des distributions
Les distributions Linux ont reçu les correctifs à l’avance et publient des paquets corrigés sous leurs propres numéros de version. Un paquet de distribution peut être corrigé même si sa version paraît plus ancienne que la version amont. Sur Ubuntu 24.04 LTS, par exemple, le paquet corrigé est 8.3.6-0ubuntu0.24.04.13, et non 8.3.36.
| Version d’Ubuntu | Paquet | Version corrigée |
|---|---|---|
| 26.04 LTS | php8.5 | 8.5.4-0ubuntu1.5 |
| 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 |
| 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 |
Consultez l’avis de sécurité de votre distribution pour connaître les versions exactes des paquets. L’avis de sécurité PHP demande également aux utilisateurs du dépôt remirepo de passer aux paquets de leur distribution ou de compiler depuis les sources, car ce dépôt ne proposait pas de mises à jour le jour de la publication.
Mesures d’atténuation provisoires
Si vous ne pouvez pas mettre à jour immédiatement, l’avis de sécurité PHP liste des paramètres qui réduisent l’exposition à certains vecteurs d’attaque. Ils ne rendent pas une installation sûre et doivent être appliqués dans php.ini, le pool PHP-FPM ou la configuration du serveur, puis suivis du redémarrage de tous les processus de travail PHP.
- Désactivez le suivi de progression des téléversements de session :
session.upload_progress.enabled = 0. Ne vous fiez pas àini_set()ou.user.inipour cela. - Supprimez la limite de mémoire PHP avec
memory_limit = -1, défini de sorte que les applications ne puissent pas le modifier, et utilisez plutôt une limite de mémoire au niveau du conteneur ou du cgroup. N’utilisez pasRLIMIT_ASouRLIMIT_DATA; ils peuvent déclencher le chemin de code vulnérable. - Limitez la taille des requêtes, par exemple
post_max_size = 8M, ou32Msi des téléversements sont nécessaires, et appliquez des limites de requêtes au niveau du serveur web ou du proxy. - Sous PHP 8.5, définissez
fatal_error_backtraces = 0.
Masquer les erreurs n’y change rien. Considérez ces paramètres comme une solution de transition de courte durée en attendant la mise à jour, et non comme un correctif.
Pare-feu applicatifs web
Cloudflare a déployé des règles WAF gérées pour PHP2Shell avant la divulgation publique, y compris sur son offre gratuite. Un WAF constitue une couche supplémentaire utile pendant la mise à jour, mais des attaquants ont été observés en train de modifier leurs charges utiles pour échapper à la détection, et la seule mise à jour du code du site ou des extensions ne corrige pas une faille de l’environnement d’exécution. Mettez à jour PHP même si un WAF est en place.
Après la mise à jour
- Redémarrez PHP : redémarrez PHP-FPM, Apache ou le serveur d’applications PHP afin que chaque processus de travail charge le code corrigé.
- Vérifiez l’environnement PHP qui sert le site : la version de PHP en ligne de commande peut différer de celle qui traite les requêtes web, et les serveurs exécutent souvent plusieurs versions de PHP en parallèle.
- Vérifiez chaque serveur et compte d’hébergement : les sites de préproduction, les anciennes installations et les serveurs secondaires sont faciles à oublier.
- Revoyez les limites : le correctif ajoute une limite de mémoire stricte qui met fin au processus lorsqu’elle est atteinte ; revoyez donc les paramètres de mémoire et de taille des requêtes pour les requêtes lourdes légitimes.
Sur un hébergement infogéré, demandez à votre hébergeur de confirmer que l’environnement PHP corrigé est en place.
Signes à examiner
Les chercheurs signalent des indices qui méritent un examen plus approfondi. À eux seuls, ils ne prouvent pas qu’un serveur a été attaqué.
- Cookies
PHPSESSIDanormalement volumineux ou malformés. - Requêtes multipart suivies d’erreurs de limite de mémoire ou de réponses HTTP 500 répétées.
- Plantages inexpliqués de processus de travail PHP.
Si vous soupçonnez une compromission, la mise à jour de PHP ne supprime rien de ce qu’un attaquant a pu laisser derrière lui. Cela nécessite une investigation distincte.
Comment nous pouvons vous aider
Notre vérification identifie l’environnement PHP qui sert réellement votre site, contrôle l’état de ses correctifs fournisseur et vous remet des constats écrits assortis d’une prochaine étape claire. Rien ne change sur votre serveur avant que nous ayons convenu du périmètre avec vous.
Sources
- Avis de sécurité PHP, 21 octobre 2026
- Synthèse de la recherche sur PHP2Shell
- Avis de sécurité Ubuntu USN-8948-1
- Cloudflare : protection WAF contre les vulnérabilités PHP
Revu le 22 octobre 2026. Ce résumé constitue une information générale, et non un conseil concernant vos systèmes. Consultez l’avis de sécurité PHP pour les informations les plus récentes.