Faille critique « php2shell » : nos mises à jour de PHP en cours de déploiement
Le projet PHP a publié ce mercredi 21 octobre 2026, à 16 h (heure de Paris), des versions de sécurité qui corrigent deux failles critiques d'exécution de code à distance : CVE-2026-109618 et CVE-2026-109619, toutes deux notées 9,2 sur 10 (CVSS v4.0). Les chercheurs de watchTowr ont surnommé ce duo « php2shell ».
Nos équipes déploient en ce moment les versions corrigées sur les serveurs que nous administrons. Cet article explique ce que sont ces failles, pourquoi elles sont prises très au sérieux et ce que nous faisons de notre côté.
Deux failles au cœur de PHP
Les failles ne concernent ni WordPress, ni PrestaShop, ni une extension en particulier : elles se trouvent dans le moteur PHP lui-même, dans la façon dont il prépare puis nettoie chaque requête. Elles se déclenchent donc quel que soit le site ou le CMS installé.
CVE-2026-109618 : une corruption mémoire après un manque de mémoire
Lorsqu'une requête dépasse la mémoire autorisée, PHP l'interrompt. Si cette interruption tombe au mauvais moment, certaines données internes de la requête ne sont qu'à moitié initialisées. Le nettoyage de fin de requête les traite pourtant comme des données valides, ce qui corrompt la mémoire et peut aboutir à l'exécution de code choisi par l'attaquant.
Selon l'avis du projet PHP, le risque est maximal avec mod_php (PHP chargé directement dans Apache) : un exploit démontré permet à une requête non authentifiée de déclencher l'attaque avant même que le code du site ne s'exécute.
CVE-2026-109619 : un état global périmé réutilisé
La seconde faille touche un état interne propre à chaque requête, qui peut survivre à la libération de la mémoire qui le contenait. La requête suivante traitée par le même processus PHP (un « worker » PHP-FPM, par exemple) peut alors réutiliser cet état périmé avant qu'il ne soit réinitialisé. Les mesures provisoires publiées par PHP montrent qu'elle est liée au suivi de progression des envois de fichiers (session.upload_progress) et, en PHP 8.5, aux traces des erreurs fatales.
Pourquoi c'est sérieux
- Aucune authentification n'est nécessaire : une simple requête HTTP vers un site PHP suffit, sans compte ni formulaire particulier.
- Tous les sites PHP sont concernés : WordPress, PrestaShop, Joomla, Drupal, Laravel, Magento… Les estimations vont de 1,3 à plus de 1,9 million de serveurs exposés sur Internet.
- Les détails ont fuité avant la publication, ce qui a poussé le projet PHP à annoncer le correctif la veille. Du code d'exploitation circule déjà, non vérifié (et parfois piégé : ne l'exécutez pas).
- Des premières attaques sont évoquées par Cloudflare, sans confirmation à ce stade par le CERT-FR ni par le catalogue des failles exploitées de la CISA.
- Le précédent est parlant : en 2024, la faille CVE-2024-4577 avait été exploitée moins de 24 heures après sa publication.
Versions concernées et versions corrigées
| Branche | Version corrigée | Remarque |
|---|---|---|
| PHP 8.5 | 8.5.12 | Désactiver aussi fatal_error_backtraces en attendant la mise à jour |
| PHP 8.4 | 8.4.27 | |
| PHP 8.3 | 8.3.36 | |
| PHP 8.2 | 8.2.35 | Fin de support le 31 décembre 2026 |
| PHP 8.1 et antérieures | Aucune | Plus maintenues par le projet PHP : migration nécessaire |
Le CERT-EU estime que toutes les versions depuis PHP 5 pourraient être touchées. Certains éditeurs proposent des correctifs rétroportés pour les anciennes branches, mais la seule solution durable reste de passer à une version maintenue.
Ce que nous faisons chez HaiSoft
Nous suivions l'annonce depuis la veille et nous étions prêts : les mises à jour sont en cours de déploiement sur nos serveurs.
- Hébergement mutualisé : les versions corrigées sont installées sur l'ensemble des versions de PHP proposées. Vous n'avez rien à faire, l'opération est transparente pour vos sites.
- Serveurs dédiés et virtuels infogérés : nous mettons à jour PHP sur chaque serveur, cette intervention est incluse dans votre contrat d'infogérance. Les paquets corrigés du dépôt sury.org sont déjà disponibles et en cours d'installation.
- Serveurs sous Plesk ou avec les paquets officiels Debian : Plesk et Debian n'ont pas encore publié leurs paquets corrigés. Nous suivons leurs publications et appliquerons les mises à jour dès leur sortie.
- Sites encore en PHP 8.1 ou antérieur : ces versions ne recevront pas de correctif. Nous contacterons les clients concernés pour planifier une migration vers une version maintenue.
Vous administrez vous-même votre serveur ?
- Faites l'inventaire des versions de PHP installées :
php -v, les paquetsphp8.*de Debian, ouplesk bin php_handler --listsur Plesk. - Mettez à jour vers 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 (ou le paquet corrigé de votre distribution), puis redémarrez tous les services PHP-FPM et Apache si vous utilisez
mod_php. - Si la mise à jour doit attendre, appliquez les mesures provisoires du projet PHP, qui réduisent le risque sans le supprimer.
- Isolez les applications sur des versions non maintenues (VPN, filtrage, mise hors ligne), comme le recommande le CERT-EU, jusqu'à leur migration.
- Surveillez tout shell,
curlouwgetlancé parphp-fpm,apache2ouhttpd: c'est le signe typique d'une exploitation réussie.
Les mesures provisoires recommandées par le projet PHP sont à placer dans le php.ini ou dans la configuration du pool PHP-FPM (pas dans un .user.ini ni via ini_set()), suivies d'un redémarrage de tous les workers :
; CVE-2026-109619
session.upload_progress.enabled = 0
; PHP 8.5 uniquement
fatal_error_backtraces = 0
; CVE-2026-109618 : limiter la taille des requêtes
; (8M sans envoi de fichiers, 32M avec)
post_max_size = 8M
Pour CVE-2026-109618, le projet PHP conseille aussi de fixer memory_limit = -1 sans que l'application puisse le modifier, et de limiter la taille des requêtes au niveau du serveur web ou du proxy. Ce réglage supprime toute limite de mémoire par script : à réserver aux cas où la mise à jour est vraiment impossible dans l'immédiat.
Vous êtes client en hébergement mutualisé ou en infogérance ? Nous nous occupons de tout. Une question sur votre serveur ou un site encore en PHP 8.1 ou antérieur ? Contactez notre équipe technique.
Sources
- php.net : annonces des versions 8.5.12, 8.4.27, 8.3.36 et 8.2.35
- PHP : avis de sécurité GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- PHP : avis de sécurité GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- CERT-FR : alerte CERTFR-2026-ALE-014
- CERT-EU : Critical Vulnerabilities in PHP
- Tenable : php2shell, questions fréquentes
- ServerNews : PHP, correctif critique attendu aujourd'hui à 16 h
