Contexte de la faille PHP2Shell

PHP2Shell, un module d’exécution de code à distance, a été compromis en 2026, exposant les serveurs PHP aux injections de commandes. La vulnérabilité a affecté toutes les versions maintenues officiellement, mais les correctifs ont été publiés uniquement jusqu’à la branche 8.2. Les versions antérieures, dont la 5.6, étaient déjà en fin de vie et ne bénéficiaient plus d’un support de sécurité direct de la communauté principale.

Intervention du mainteneur et processus de backport

Ondřej Surý, développeur bénévole depuis deux décennies pour les paquets PHP de Debian et Ubuntu, a réagi le même après‑midi à la divulgation. Il a extrait les correctifs publiés pour les branches récentes, puis les a adaptés aux sources de PHP 5.6. Le processus a consisté à appliquer les patches de sécurité, à résoudre les incompatibilités de dépendances (notamment les bibliothèques libxml2 et openssl) et à recompiler les binaires pour les architectures supportées par les distributions Debian‑based. Cette opération a été réalisée sans modification du code applicatif, ce qui a limité le risque d’introduire de nouvelles régressions.

Implications pour les environnements PHP en fin de vie

Les serveurs qui continuent d’exécuter PHP 5.6 restent exposés tant que les correctifs ne sont pas intégrés. Le fait que les correctifs aient été backportés montre que la vulnérabilité pouvait être résolue sans migration vers une version plus récente, mais cela implique une charge de maintenance supplémentaire pour les administrateurs. Le maintien d’une version EOL nécessite une surveillance continue des dépendances, une vérification de la compatibilité des extensions tierces et une gestion rigoureuse des mises à jour de sécurité, faute de quoi la surface d’attaque reste large.

Solutions tierces : HeroDevs NES pour PHP

HeroDevs propose le produit NES pour PHP, qui fournit un correctif pré‑compilé couvrant chaque CVE connu pour les versions obsolètes, sans que les utilisateurs aient à modifier leur code. Le mécanisme repose sur le remplacement dynamique des bibliothèques vulnérables par des versions patchées au niveau du système d’exploitation, ce qui simplifie le déploiement dans des environnements où la recompilation n’est pas possible. Cette approche réduit le temps de mise en conformité, mais elle ne supprime pas la nécessité de vérifier la compatibilité avec les extensions PHP personnalisées. De plus, l’absence de modifications de code source signifie que les performances restent identiques aux binaires d’origine, tout en bénéficiant d’une protection contre les vulnérabilités recensées.