Contexte et portée des vulnérabilités php2shell

Le 21 octobre 2026, les chercheurs de Calif.io, Wiz, OpenAI et Quarkslab ont publié les CVE-2026-109618 et CVE-2026-109619, désignés sous le nom php2shell. Ces failles affectent toutes les versions de PHP 5.4 et supérieures, soit près de 70 % des sites web. Elles permettent, selon l’avis du projet PHP, un déni de service, une exécution de code à distance et une exposition de données lorsqu’un serveur traite des requêtes HTTP spécialement façonnées.

Le même mois, le projet PHP a émis un avis informatif (CVE-2026-115560) concernant la fonction session.upload_progress, corrigée dans la version 8.5.12 et prévue pour la prochaine version stable. Cette mise à jour montre que les vulnérabilités touchent à la fois le cœur du runtime et des extensions de suivi de session.

Mécanisme de protection déployé par Cloudflare

Cloudflare a intégré, dès le 21 octobre 2026 à 03:02 UTC, des règles WAF spécifiques aux deux CVE‑php2shell. Les règles sont identifiées par les IDs 77454fe2d30c4220b5701f6fdfb893ba (Free Ruleset) et efb7b8c949ac4650a09736fc376e9aee (Managed Ruleset). Elles sont activées automatiquement sur tous les plans, y compris les utilisateurs gratuits, sans action requise.

Les protections couvrent les sites qui conservent le nom de champ par défaut session.upload_progress.name. Les clients qui ont personnalisé ce paramètre ne bénéficient pas de la règle, ce qui souligne l’importance de la configuration par défaut dans l’efficacité du WAF.

Analyse de la détection transactionnelle complète

Pour identifier les tentatives d’exploitation, Cloudflare a introduit la « full transaction detection », une capacité qui combine les signaux de la requête et de la réponse HTTP. Cette approche dépasse les filtres classiques basés uniquement sur la requête, car elle exploite la réponse de l’origine pour confirmer ou infirmer une exécution réussie du code malveillant. Ainsi, lorsqu’une réponse correspond à un modèle d’exploit, la règle bloque la réponse avant qu’elle n’atteigne le client, réduisant les faux positifs.

Les analystes de Cloudflare ont observé des variations du payload, notamment des tailles de requêtes augmentées et des mutations de paramètres, ce qui a justifié l’ajout de la logique de réponse. Le suivi du volume de correspondances et le croisement avec la logique de règle ont permis de valider l’efficacité de la protection dès les premières heures de déploiement, environ neuf heures avant la divulgation publique.

Recommandations et limites

Malgré la couche supplémentaire fournie par le WAF, Cloudflare recommande de mettre à jour le runtime PHP vers une version corrigée (par ex. 8.5.12 ou ultérieure) afin d’éliminer la vulnérabilité à la source. Les administrateurs doivent également vérifier que le Managed Ruleset est en mode bloc et que les règles de réponse sont actives via le tableau de bord Security > Security Rules.

Les protections ne couvrent pas les configurations où le nom du champ session.upload_progress.name a été modifié, ni les environnements où le WAF est désactivé. En outre, la mitigation ne remplace pas les bonnes pratiques de limitation de la taille des uploads, qui restent utiles pour atténuer la pression mémoire exploitée par php2shell.