TL;DR : deux failles critiques de PHP (PHP2Shell, CVE-2026-109618 et CVE-2026-109619) permettent d’exécuter du code à distance sur votre serveur, sans mot de passe. Mettez à jour vers PHP 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 : c’est la seule protection complète. Sur PHP 8.1 ou plus ancien, aucune version officielle n’est corrigée. PandiWeb s’en charge : 04 84 49 63 11 ou support@pandiweb.fr.
Par Geoffrey Medina, fondateur de PandiWeb, développeur web fullstack depuis 2015
Selon CERT-EU, un exploit démontré permet d’attaquer un serveur PHP vulnérable avec une seule requête, sans aucun mot de passe. Le 20 octobre 2026, le projet PHP a annoncé deux vulnérabilités critiques et prévu leur correction pour le lendemain, 14h00 UTC. Le 21 octobre, les versions corrigées sont sorties sur quatre branches en même temps. La communauté sécurité a baptisé l’ensemble « PHP2Shell ».
Cette faille PHP ne se règle pas en désactivant une extension : elle se trouve dans le moteur qui fait tourner votre site. Chez PandiWeb, nous mettons à jour PHP, vos sites et vos applications web, et notre équipe peut intervenir rapidement. Voici ce qu’il faut savoir et faire, dans l’ordre.
Deux failles critiques, déjà exploitées
Les deux vulnérabilités, CVE-2026-109618 et CVE-2026-109619, sont notées 9.2 sur 10 (CVSS v4.0) et permettent d’exécuter du code à distance sans authentification. watchTowr rapporte des tentatives d’exploitation observées dès le 21 octobre 2026 sur son réseau de pièges (honeypots). De son côté, CERT-EU indique que des preuves de concept circulent et juge probable que des attaquants exploitent déjà ces failles.
Traitez le sujet comme une urgence, pas comme une mise à jour de routine.
CVE-2026-109618 : une corruption mémoire après un manque de mémoire
Quand PHP manque de mémoire, la gestion de cette erreur peut interrompre le moteur alors que les données internes de la requête ne sont qu’à moitié initialisées. Le nettoyage de la requête traite ensuite ces données invalides comme valides, ce qui ouvre la voie à une exécution de code à distance.
CVE-2026-109619 : un état global périmé réutilisé
Ici, un état interne de la requête survit à la libération de la mémoire qui le portait. Une requête suivante, traitée par le même processus PHP, peut s’en servir avant que l’initialisation normale ne le remette à zéro. Même conséquence : exécution de code à distance, sans authentification.
Qui est concerné par la faille PHP d'octobre 2026
La faille se situe dans le moteur PHP, pas dans votre CMS : mettre WordPress à jour ne la corrige pas. Toute installation PHP qui sert des requêtes web est concernée, que PHP tourne sous PHP-FPM, Apache mod_php, php-cgi, LiteSpeed ou FrankenPHP. Le risque est jugé le plus élevé avec Apache mod_php, où l’attaque peut aboutir avant même que le code de votre application ne s’exécute (sources : php.net et watchTowr).
À l’inverse, un site entièrement statique, sans traitement PHP, n’est pas concerné. Un site déjà passé en 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 n’est plus exposé à ces deux failles.
Versions de PHP corrigées : la liste de référence
- PHP 8.5 : passez en 8.5.12 (support actif, sécurité jusqu'au 31 décembre 2029)
- PHP 8.4 : passez en 8.4.27 (support actif jusqu'au 31 décembre 2026, sécurité jusqu'au 31 décembre 2028)
- PHP 8.3 : passez en 8.3.36 (correctifs de sécurité uniquement, jusqu'au 31 décembre 2027)
- PHP 8.2 : passez en 8.2.35 (correctifs de sécurité uniquement, jusqu'au 31 décembre 2026)
- PHP 8.1 et antérieures : aucune version officielle corrigée, branche en fin de vie (migration ou correctif de votre hébergeur)
PHP 8.2 reçoit son dernier correctif de sécurité le 31 décembre 2026 : l’installer aujourd’hui règle la faille, mais pas la question de la migration. La version candidate PHP 8.6.0 RC4 contient aussi les correctifs, mais une version candidate n’a pas sa place en production. Source : php.net.
Comment vérifier votre version de PHP
Il faut identifier la version réellement exécutée, pas celle qui figure dans un contrat. Notez toujours le numéro complet : 8.3.36 est corrigée, 8.3.20 ne l’est pas.
- Panneau de votre hébergeur (cPanel, hPanel, Plesk) : un sélecteur de version PHP est souvent proposé par domaine.
- WordPress : menu Outils, puis Santé du site, onglet Informations, qui affiche la version de PHP et le serveur web.
- Ligne de commande :
php -vdonne la version du binaire en ligne de commande, qui peut différer de celle servie au web par PHP-FPM. - Fichier de test : une page contenant
phpinfo()indique la version du processus web et son type (FPM, mod_php). Supprimez-la juste après usage, car elle expose des informations sensibles.
Si votre hébergement est géré par un tiers, lisez l’avis de sécurité de votre fournisseur : un correctif rétroporté peut conserver un ancien numéro de version. Pas le temps de faire ce relevé ? Nous le faisons pour vous.
Mesures temporaires : ce que PHP recommande, et leurs limites
PHP est clair : il n’existe pas de mitigation complète, et la mise à jour est le seul choix sûr. En attendant le correctif, l’équipe PHP documente des réglages qui réduisent le risque :
session.upload_progress.enabled=0dans le php.ini ou le pool PHP-FPM (pas viaini_set()ni.user.ini), puis redémarrage de tous les processus PHP ;- sur PHP 8.5 uniquement,
fatal_error_backtraces=0; - une valeur de
post_max_sizeréduite (8M sans envoi de fichiers, 32M avec) et des limites de taille et de nombre de champs au niveau du serveur web ou du proxy ; - l’isolation, ou la restriction d’accès, des services exposés à Internet qui ne peuvent pas être mis à jour tout de suite.
PHP propose aussi de fixer memory_limit à -1 pour l’une des deux failles. Ce réglage supprime la protection contre une consommation mémoire excessive : ne l’appliquez pas sans l’avis d’un administrateur système.
Un troisième avis, publié le 23 octobre 2026 (CVE-2026-115560), concerne la progression d’envoi de fichiers en session. Il demande de maintenir session.upload_progress.enabled=0 jusqu’à la prochaine version corrective, qui sera accompagnée d’un avis complet.
Anciennes versions de PHP non supportées : que faire
Avec PHP 8.1 ou plus ancien, le projet PHP ne publie plus de mise à jour officielle. Il a toutefois mis à disposition des correctifs minimaux à compiler soi-même pour PHP 7.4, 8.0 et 8.1, sous forme de branches de code source. Pour PHP 7.3 et antérieures, dont PHP 5, aucun correctif n’existe, selon watchTowr. Trois options s’ouvrent.
Option 1 : le correctif rétroporté par votre hébergeur ou votre distribution
Certaines distributions et certains éditeurs de support longue durée fournissent des correctifs rétroportés. C’est une solution de dépannage : elle dépend d’un tiers, produit une version PHP non standard et doit être rejouée à chaque nouvelle faille. Elle ne couvre pas les versions les plus anciennes. Selon CERT-EU, le dépôt remirepo, par exemple, ne fournit pas ses mises à jour le jour de la sortie.
Option 2 : la migration vers une version supportée
C’est la seule option durable : migrer vers PHP 8.3, 8.4 ou 8.5 supprime la faille et replace votre site dans le cycle de support officiel. La migration demande un audit de compatibilité, un test sur un environnement séparé et un plan de retour arrière : c’est précisément ce que nous prenons en charge. Pour ce qui attend la prochaine branche, voir notre article sur PHP 8.6 et WordPress.
Option 3 : l'isolation en attendant
Si la migration ne peut pas démarrer immédiatement, on isole : pare-feu applicatif en amont, filtrage des requêtes, cloisonnement du service. L’isolation gagne du temps, elle ne remplace jamais le correctif. Elle suppose une surveillance active, et chaque système en attente doit avoir un responsable et une échéance.
Pourquoi migrer plutôt que bricoler un correctif
Recycler à la main un correctif d’une branche sur une autre crée une version de PHP que personne d’autre ne maintient. À la prochaine faille, vous serez seul à corriger. Le calendrier va dans le même sens : PHP 8.2 sort du support de sécurité le 31 décembre 2026, et PHP 8.4 quitte le support actif à la même date.
La migration permet aussi de faire le tri dans la dette technique : extensions abandonnées, code obsolète, configurations héritées. Anticiper la montée de version évite de la subir dans l’urgence la prochaine fois. Elle s’intègre naturellement dans un contrat de maintenance de site internet.
Frameworks et CMS concernés
Tous les CMS et frameworks qui s’exécutent sur PHP sont exposés par la faille du moteur, mais ils ne réagissent pas de la même façon à une montée de version. Chacun publie sa propre matrice de compatibilité, et c’est elle qui détermine la version de PHP cible.
WordPress et WooCommerce
Le manuel d’hébergement de WordPress indique, pour WordPress 7.1, un minimum de PHP 7.4, et recommande PHP 8.4 ou 8.5 pour une nouvelle installation. WordPress 7.1 reste compatible de PHP 7.4 à 8.5, mais les versions 7.4, 8.0 et 8.1 sont en fin de vie et conservées uniquement pour la rétrocompatibilité. Autrement dit, un site WordPress sur PHP 7.4 fonctionne encore, mais n’a plus de correctif officiel. WooCommerce ajoute ses propres exigences, à vérifier extension par extension. En cas de panne après une montée de version, notre guide de dépannage WordPress détaille les premiers réflexes.
PrestaShop, Drupal, Symfony et Laravel
Ces plateformes publient chacune les versions de PHP compatibles avec leurs versions majeures. Une boutique PrestaShop ancienne ne passe pas à PHP 8.5 en un clic : la montée se prépare par paliers. Nous ne modifions jamais la version de PHP d’une application sans avoir lu la matrice de la version exacte du framework, puis testé les parcours critiques.
Comment PandiWeb intervient sur la faille PHP2Shell
PandiWeb est votre solution pour sortir de la faille PHP2Shell sans casser votre site. Nous mettons à jour les sites et applications web qui tournent sur d’anciennes versions de PHP, ainsi que les frameworks et CMS que nous maîtrisons : WordPress, WooCommerce, PrestaShop, Drupal, Symfony et Laravel. Chaque framework a sa matrice de compatibilité : nous la vérifions avant toute action, nous testons sur un environnement séparé, puis nous déployons.
Notre déroulé, en cinq temps :
- Relevé de la version réelle de PHP par site et par service, avec les réglages sensibles.
- Lecture de la matrice de compatibilité du CMS, du framework et des extensions critiques.
- Sauvegarde complète et environnement de test pour rejouer les parcours sensibles : connexion, panier, paiement, formulaires.
- Déploiement de la version corrigée, avec surveillance des journaux et plan de retour arrière.
- Recommandations de montée de version planifiée, pour ne plus avoir à intervenir dans l’urgence.
Agence web depuis 2015, nous connaissons ces environnements et notre équipe est prête à intervenir rapidement. Nous répondons vite aux demandes de devis et nous agissons sans attendre. Besoin d’un back-office ou d’une application métier à jour ? Découvrez notre offre de développement d’applications web.
Pour un devis : appelez le 04 84 49 63 11 ou écrivez à support@pandiweb.fr.
Sources et points encore ouverts
Nous nous en tenons aux annonces officielles. Deux points restent ouverts à la date de publication : aucun détail technique ni score n’est encore publié pour CVE-2026-115560, et le délai de disponibilité des mises à jour sur le dépôt remirepo n’est pas précisé.
Questions fréquentes sur la faille PHP2Shell
Mon site tourne sur PHP 8.1, suis-je concerné ?
Oui : PHP 8.1 n’est plus maintenu par le projet PHP, et aucune version officielle corrigée n’existe pour cette branche. Seuls des correctifs minimaux à compiler soi-même ont été publiés pour 7.4, 8.0 et 8.1. Vous dépendez donc d’un correctif rétroporté par votre hébergeur ou d’une migration vers PHP 8.3, 8.4 ou 8.5.
Comment savoir si mon site a déjà été compromis ?
Vérifiez les journaux d’accès (requêtes inhabituelles), la présence de fichiers PHP inconnus à la racine ou dans les dossiers d’envoi de fichiers, et tout changement soudain de comportement du site. Un site qui fonctionne normalement n’est pas la preuve qu’il est sain. Une analyse de l’intégrité des fichiers et des accès serveur reste la seule réponse sérieuse.
Désactiver session.upload_progress suffit-il ?
Non. PHP recommande ce réglage comme mesure temporaire, mais précise qu’aucune configuration ne corrige complètement ces failles. Traitez-le comme un pansement, en attendant le passage à une version corrigée.
Dois-je mettre à jour WordPress ou PHP ?
PHP. La faille se trouve dans le moteur PHP : un WordPress à jour sur un PHP non corrigé reste exposé. Mettez à jour la version de PHP servie par votre hébergement, puis vérifiez la compatibilité de vos extensions.
Faut-il passer tout de suite en PHP 8.6 ?
Non, pas en production. PHP 8.6.0 RC4 contient les correctifs, mais c’est une version candidate, donc non destinée aux sites en ligne. L’objectif immédiat est la version corrigée de votre branche actuelle : 8.5.12, 8.4.27, 8.3.36 ou 8.2.35.
Votre PHP n'est pas à jour ? PandiWeb s'en occupe
Nous mettons à jour PHP, vos CMS et vos frameworks sans casser votre site, et notre équipe est prête à intervenir rapidement. Réponse rapide pour votre devis par téléphone ou par e-mail à support@pandiweb.fr.
Auteur
PandiWeb
Développeur web fullstack et fondateur de PandiWeb depuis 2015, j'accompagne TPE, PME et grands comptes dans leurs projets digitaux : création de sites, e-commerce, SEO/GEO et maintenance. Formateur WordPress depuis 2020, je m'appuie sur une expérience terrain concrète (PHP, WordPress, PrestaShop, SEO, IA et automatisation) plutôt que sur de la théorie.
