PHP2Shell : deux failles critiques dans le cœur de PHP
Le 21 octobre 2026, l'équipe PHP a publié des correctifs d'urgence pour deux vulnérabilités critiques, CVE-2026-109618 et CVE-2026-109619, surnommées « PHP2Shell ». Elles permettent à un attaquant non authentifié d'exécuter du code à distance sur un serveur web.
Ce qui se passe
PHP fait tourner une immense partie du web : sites, CMS comme WordPress, interfaces d'administration, équipements réseau. Ces deux failles touchent le moteur de PHP lui-même, indépendamment de l'application installée dessus. Elles ont été découvertes par Calif (dans le cadre du projet « Patch the Planet » d'OpenAI) et par Wiz, avec l'aide de modèles d'IA.
Les deux vulnérabilités
- CVE-2026-109618 : corruption mémoire lors d'une erreur de mémoire insuffisante (out-of-memory) pendant le nettoyage d'une requête, menant à une exécution de code.
- CVE-2026-109619 : un état global appartenant à une requête est réutilisé par une requête suivante sur le même worker, avec à la clé exécution de code et fuite de mémoire façon Heartbleed.
Qui est concerné ?
- PHP 8.2 avant 8.2.35, 8.3 avant 8.3.36, 8.4 avant 8.4.27, 8.5 avant 8.5.12 (et les anciennes versions non maintenues).
- Tous les modes de service web : PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed. Le risque est maximal avec
mod_php. - Configuration par défaut :
session.upload_progress.enabled=Onavec envoi de fichiers multipart accepté.
Comment se protéger
- Inventorier les serveurs et applications PHP, en priorité ceux exposés sur Internet.
- Mettre à jour vers PHP 8.5.12, 8.4.27, 8.3.36 ou 8.2.35, ou appliquer les paquets corrigés de votre distribution.
- En attendant, désactiver
session.upload_progress.enabledréduit partiellement le risque. - Surveiller les journaux du serveur et les processus inhabituels, et vérifier les équipements qui embarquent PHP auprès de leurs fabricants.
Le mot de HackInAlps
Une faille dans le langage, pas dans le code de l'application : c'est un excellent rappel que la sécurité passe aussi par la mise à jour des briques de base. On en parlera lors d'un prochain atelier !