PHP2Shell : failles critiques d'exécution de code à distance dans PHP (CVE-2026-109618, CVE-2026-109619)
Deux failles critiques de l'environnement PHP permettent une exécution de code sans authentification. Versions concernées et corrigées, et liste de contrôle pour vos serveurs.

PHP2Shell est le nom commun de deux failles critiques d'exécution de code à distance (RCE) dans l'environnement d'exécution PHP lui-même, corrigées le 21 octobre 2026 : CVE-2026-109618 et CVE-2026-109619. Toutes deux sont notées 9.2 en CVSS v4.0 et permettent à un attaquant non authentifié d'exécuter du code sur le serveur. Comme la faille se trouve dans PHP et non dans le code applicatif, toute installation PHP qui sert des requêtes web est concernée, quelle que soit la qualité du code de l'application.
Que font les deux failles ?
CVE-2026-109618 est une corruption mémoire déclenchée lorsque PHP atteint sa limite de mémoire pendant la préparation d'une requête (analyse des données de formulaire, c'est-à-dire $_POST). L'attaquant envoie une requête POST non authentifiée dimensionnée pour dépasser cette limite. La requête est traitée avant l'exécution du code applicatif ; les contrôles de connexion de l'application ne peuvent donc pas l'arrêter.
CVE-2026-109619 est un use-after-free dans l'état qu'un worker PHP conserve d'une requête à l'autre : la mémoire libérée d'une requête peut être réutilisée par la suivante. Selon Datadog, la fonction session upload progress, activée par défaut, rend ce chemin exploitable sur mod_php et PHP-FPM.
Quelles versions sont concernées ?
- PHP 8.5 : avant 8.5.12 (corrigé en 8.5.12)
- PHP 8.4 : avant 8.4.27 (corrigé en 8.4.27)
- PHP 8.3 : avant 8.3.36 (corrigé en 8.3.36)
- PHP 8.2 : avant 8.2.35 (corrigé en 8.2.35)
- PHP 7.4, 8.0 et 8.1 : pas de version officielle ; PHP a publié des correctifs source, sinon paquet de distribution/LTS ou migration
- PHP 7.3 et antérieur : aucun correctif, migrer vers une branche maintenue
Les environnements concernés incluent Apache mod_php, PHP-FPM, php-cgi, LiteSpeed et FrankenPHP. Le risque est maximal avec mod_php, où une seule requête non authentifiée peut déclencher l'attaque avant le code applicatif.
Chronologie
Les détails ont fuité le 20 octobre 2026, avant la divulgation prévue le 22 octobre. PHP a avancé sa publication et livré les versions corrigées le 21 octobre. watchTowr a signalé le même jour des tentatives d'exploitation dans son réseau de pots de miel. Datadog rapporte qu'AWS a observé des tentatives le 17 octobre, quatre jours avant la divulgation. Le 23 octobre, PHP a publié un avis sur une faille liée, CVE-2026-115560, dans la fonction session upload progress ; selon Cloudflare, elle touche aussi les versions entièrement corrigées, dont 8.5.12, et sera corrigée dans la prochaine version régulière de PHP.
Que faire ?
1. Faites l'inventaire : listez tous les serveurs et applications PHP, en commençant par ceux exposés à Internet. Comptez aussi les interpréteurs PHP embarqués dans les images de conteneurs et les applications.
2. Mettez à jour : passez chaque installation à la version corrigée de sa branche ou installez le paquet corrigé de votre distribution. Les distributions peuvent rétroporter le correctif sans changer le numéro de version ; cherchez les numéros CVE dans le journal du paquet.
3. Redémarrez : après la mise à jour, redémarrez tous les workers PHP et pools PHP-FPM et reconstruisez les images de conteneurs. Un worker qui tourne encore avec l'ancien environnement reste exposé.
4. Restreignez l'accès Internet des systèmes impossibles à mettre à jour immédiatement et placez un WAF ou un proxy inverse devant eux.
5. Surveillez : requêtes multipart contenant des champs PHPSESSID ou PHP_SESSION_UPLOAD_PROGRESS inutilisés, erreurs « Allowed memory size ... exhausted » avec « Unknown on line 0 », segmentation faults des workers et lancement d'un shell par le serveur web.
Pourquoi les contournements ne suffisent pas
Des réglages comme memory_limit=-1 ou session.upload_progress.enabled=0 réduisent l'exposition mais ne ferment pas les failles. PHP indique qu'aucun changement de configuration ne les corrige entièrement. La seule correction complète est la version corrigée suivie du redémarrage de tous les workers.
En résumé
PHP2Shell est une paire de failles exploitables sans authentification qui concerne toute application web PHP, avec des tentatives d'exploitation déjà observées. Vérifiez aujourd'hui la version de PHP de vos serveurs ; si elle est inférieure à 8.5.12, 8.4.27, 8.3.36 ou 8.2.35, mettez à jour et redémarrez tous les workers. Pour un accompagnement dans la mise à jour de vos systèmes PHP, contactez l'équipe Boran Yazılım via notre page contact.
Sources
- PHP güvenlik duyuruları ve sürüm notları: https://www.php.net/
- Datadog Security Labs: https://securitylabs.datadoghq.com/articles/php2shell-critical-vulnerabilities-in-php/
- watchTowr PHP2Shell SSS: https://watchtowr.com/intelligence/php-cve-2026-109618-faq/
- The Hacker News (21 Ekim 2026): https://thehackernews.com/2026/10/php-issues-emergency-patches-for-two.html
- Cloudflare: https://blog.cloudflare.com/php-vulnerabilities-waf-protection/