Guide

php2shell : les failles PHP que chaque site WordPress doit corriger maintenant

Le 21 octobre 2026, le projet PHP a publié PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35 pour corriger deux vulnérabilités critiques, connues ensemble sous le nom de php2shell. Chacune peut permettre à quelqu'un qui ne se connecte jamais d'exécuter son propre code sur un serveur web. Elles se trouvent dans PHP lui-même : chaque site WordPress reste exposé tant que le PHP du serveur n'est pas mis à jour, et les mises à jour de WordPress ne peuvent pas le faire à votre place.

Ce qu'est php2shell

CVE-2026-109618 est une faille dans la façon dont PHP se rétablit lorsqu'une requête manque de mémoire : PHP peut s'interrompre alors que des données internes de la requête ne sont que partiellement initialisées, et le nettoyage qui suit traite ces données corrompues comme valides. CVE-2026-109619 permet à l'état interne d'une requête de survivre à sa mémoire, si bien qu'une requête suivante traitée par le même worker PHP peut l'utiliser. Le projet PHP a noté les deux à 9,2 sur l'échelle CVSS v4.0, soit critique.

Toute installation de PHP qui répond à des requêtes web est concernée : PHP-FPM, Apache avec mod_php, php-cgi, FrankenPHP et LiteSpeed. Le projet PHP considère que le risque est le plus élevé avec mod_php, pour lequel il existe un exploit fonctionnel où une seule requête non authentifiée déclenche l'attaque avant que le code de l'application ne s'exécute. Des chercheurs en sécurité signalent qu'un code de preuve de concept est déjà public : attendez-vous à des attaques automatisées contre tous les sites PHP.

Quelles versions de PHP corrigent la faille

Chaque branche de PHP prise en charge a une version qui corrige les deux failles (voir le tableau). PHP 8.2 arrive en fin de vie le 31 décembre 2026 et ne recevra plus de correctifs de sécurité ensuite : si vous mettez à jour de toute façon, passer à 8.3 ou plus récent vous évite une deuxième migration bientôt.

PHP 8.1 et les versions antérieures ne reçoivent plus de mises à jour du projet PHP. Certaines distributions Linux et certains éditeurs de support à long terme fournissent des correctifs rétroportés, et l'équipe de sécurité de PHP a publié des rétroportages minimaux du code source pour 7.4, 8.0 et 8.1 à l'intention de ceux qui compilent PHP eux-mêmes. Pour tous les autres, la réponse est de passer à une version corrigée.

Pourquoi les mises à jour de WordPress ne la corrigent pas

WordPress, ses extensions et ses thèmes sont écrits en PHP, mais PHP lui-même est installé sur le serveur. Les mises à jour automatiques, l'écran des mises à jour et les extensions de sécurité ne peuvent pas le modifier. Sur un hébergement infogéré ou mutualisé, c'est votre hébergeur qui met PHP à jour ; sur votre propre serveur, il provient des paquets de votre système d'exploitation ou de l'endroit où vous l'avez installé.

Comment vérifier votre site

Dans WordPress, ouvrez Outils → Santé du site → Infos et dépliez Serveur : la version de PHP y est indiquée. Si elle est inférieure à la version corrigée de sa branche, le site est exposé.

Une subtilité : si votre PHP provient d'une distribution Linux (Debian, Ubuntu, RHEL, AlmaLinux et d'autres), le correctif est souvent rétroporté sans changer le numéro de version. Une version comme 8.2.7-1~deb12u1 peut déjà être corrigée. Consultez l'avis de sécurité de votre distribution sur CVE-2026-109618 et CVE-2026-109619, ou demandez à votre hébergeur quelle version vous utilisez.

Si votre hébergeur gère PHP, consultez sa page de statut ou demandez-lui directement s'il a déployé l'une des versions corrigées. Si vous administrez vous-même le serveur, faites une sauvegarde, installez les paquets mis à jour de votre distribution ou de votre éditeur, puis redémarrez PHP.

Si vous ne pouvez pas mettre à jour aujourd'hui

Le projet PHP est clair : seule une mise à jour corrige complètement le problème. Son avis liste des réglages qui réduisent certaines voies d'attaque le temps de planifier la mise à jour. Appliquez-les exactement comme ils y sont décrits, dans php.ini ou la configuration du serveur plutôt que via ini_set() ou un fichier .user.ini, et redémarrez chaque worker PHP.

Pour CVE-2026-109619, le réglage principal est session.upload_progress.enabled=0. Pour CVE-2026-109618, l'avis propose memory_limit=-1, défini là où les applications ne peuvent pas le modifier, avec un post_max_size bas et une limite mémoire de conteneur ou de cgroup comme filet de sécurité. Lisez l'avis avant de modifier les limites mémoire : memory_limit=-1 supprime le plafond mémoire de PHP, c'est pourquoi il va de pair avec une limite extérieure.

Méfiez-vous des correctifs rapides partagés sur les forums et les réseaux sociaux, comme des scripts en bordure qui promettent de bloquer l'attaque. Au mieux, ils réduisent l'exposition, et un code d'un auteur inconnu qui inspecte chaque envoi vers votre site est un risque en soi. La solution est de mettre PHP à jour.

Comment Relvato la signale

Le moniteur de vulnérabilités de Relvato lit, via l'extension Relvato, la version de PHP sur laquelle tourne un site WordPress et signale php2shell comme un résultat critique, avec la version vers laquelle mettre à jour. Sur un site sans l'extension, l'analyse d'exposition la signale lorsque le serveur annonce une version vulnérable de PHP dans son en-tête X-Powered-By, et suggère de masquer cet en-tête.

Si votre hébergeur a corrigé une version de distribution sans changer le numéro de version, faites-le-vous confirmer et ignorez le résultat : il reste ignoré lors des analyses suivantes.

Versions de PHP corrigées

Branche PHPCorrigée enRemarque
8.58.5.12Prise en charge
8.48.4.27Prise en charge
8.38.3.36Prise en charge
8.28.2.35Fin de vie le 31 décembre 2026
8.1 et antérieuresPas de correctif du projet PHPMettez à jour, ou obtenez un rétroportage auprès de votre distribution ou éditeur LTS

Questions fréquentes

Mon site WordPress est-il concerné ?

S'il tourne sur une version de PHP inférieure à la version corrigée de sa branche, oui. Les failles sont dans PHP, pas dans WordPress : toutes les versions de WordPress sont concernées de la même façon. L'exception est une version de distribution avec le correctif rétroporté ; votre hébergeur peut le confirmer.

Les mises à jour automatiques de WordPress corrigent-elles php2shell ?

Non. Elles mettent à jour WordPress, les extensions et les thèmes, pas PHP. PHP se met à jour sur le serveur, par votre hébergeur ou les paquets de votre serveur.

J'utilise PHP 8.1 ou plus ancien. Que faire ?

Le projet PHP ne corrige pas 8.1 et les versions antérieures. Passez à 8.2.35 ou plus récent (8.3 ou plus récent vous évite une nouvelle migration quand 8.2 arrivera en fin de vie le 31 décembre 2026), ou demandez à votre hébergeur ou éditeur LTS s'il fournit un correctif rétroporté.

Un pare-feu applicatif web me protège-t-il ?

En partie. Les règles de pare-feu et les réglages provisoires du projet PHP réduisent l'exposition aux voies d'attaque connues, mais selon le projet PHP elles ne rendent pas une installation sûre. Mettez PHP à jour.

Ma version de PHP n'a pas changé après le correctif de mon hébergeur. Suis-je protégé ?

Peut-être : les distributions rétroportent souvent le correctif en gardant le numéro de version. Demandez à votre hébergeur ou consultez l'avis de sécurité de votre distribution sur CVE-2026-109618 et CVE-2026-109619.

Sources

À lire aussi
Guide

Sachez quand PHP, WordPress ou une extension a besoin d'un correctif.

Le moniteur de vulnérabilités de Relvato compare régulièrement la version de PHP, WordPress lui-même et chaque extension et thème aux vulnérabilités connues, et vous alerte dès qu'une mise à jour s'impose.