PHP2Shell : exécution de code dans PHP par défaut

Neuf virgule deux sur dix. Le 21 octobre 2026, le projet PHP a corrigé deux failles du cœur de PHP, CVE-2026-109618 et CVE-2026-109619, qui peuvent permettre à n'importe qui sur Internet d'exécuter du code sur un serveur web sans s'authentifier. Les chercheurs ont baptisé la paire PHP2Shell.

La fonction en cause, la progression d'envoi des sessions, est active par défaut, et les versions touchées remontent jusqu'à PHP 5.4.

Le dossier officiel

CVE-2026-109618 et CVE-2026-109619, toutes deux notées 9,2, critiques, en CVSS 4.0. Les versions corrigées sont PHP 8.2.35, 8.3.36, 8.4.27 et 8.5.12. Les branches 8.1 et antérieures sont en fin de vie et ne reçoivent aucun correctif officiel.

Fiez-vous aux avis du projet PHP plutôt qu'aux premières analyses : les premiers articles publics se sont trompés sur la cause.

À quel point est-ce facile ?

Il suffit que le serveur fasse tourner un PHP vulnérable et accepte les requêtes de l'attaquant. Aucun compte, aucun clic de quiconque.

Des preuves de concept publiques ont circulé en quelques jours, et Cloudflare a ajouté des règles d'urgence à son pare-feu applicatif.

Le principe de fonctionnement

Une requête atteint PHP avant que le moindre code applicatif ne s'exécute. Les failles se trouvent dans la façon dont le cœur de PHP analyse cette requête et suit la progression des envois pour les sessions : l'application n'a pas besoin d'avoir elle-même un défaut pour que le serveur soit exposé.

Le code de l'attaquant s'exécute alors avec les droits du processus PHP, en général l'utilisateur du serveur web.

L'impact

Exécution de code sur le serveur web. De là, les identifiants de base de données et les clés d'API de l'application, ses données, et un point d'appui dans tous les réseaux que le serveur web peut joindre.

Comment fermer la porte

Passez à PHP 8.2.35, 8.3.36, 8.4.27 ou 8.5.12, et migrez tout ce qui tourne en 8.1 ou plus ancien vers une branche maintenue : celles-ci ne reçoivent aucun correctif.

Désactiver session.upload_progress.enabled bloque les chemins confirmés par les sessions, mais le projet PHP précise que cela ne bloque pas les autres variantes. Cela fait gagner du temps, sans remplacer la mise à jour.

Et la mise à jour corrige PHP, pas l'application : une faille d'inclusion de fichier dans votre propre code reste exploitable sur un PHP corrigé.

À lire aussi

Le 29 octobre 2026, Palo Alto Networks a confirmé l'exploitation de PHP2Shell contre des interfaces d'administration PAN-OS exposées sur Internet : PHP2Shell sur PAN-OS.

Sources

Sources : avis de sécurité du projet PHP et notes des versions 8.2.35, 8.3.36, 8.4.27 et 8.5.12 (21 octobre 2026).

Formation défensive : l'attaque est montrée dans son principe seulement, sans étape d'exploitation, outil ni charge utile. Les sorties de commande et les configurations sont des exemples ; vérifiez votre plateforme et votre version dans la documentation du constructeur.

Savoir où votre réseau est exposé

NacTrack relève les versions et les configurations sur vos équipements, et les confronte aux avis publiés.