Un rapport rétrospectif de la PHP Foundation indique qu’un petit groupe de responsables de PHP connaissait une grave vulnérabilité depuis deux ans avant qu’elle ne soit rendue publique. La faille est désormais exploitée dans des attaques connues sous le nom de PHP2Shell, qui peuvent permettre l’exécution de code à distance lorsque les attaquants connaissent la version de PHP et la compilation utilisées sur le serveur ciblé.

La faille provient de la manière dont PHP gère l’épuisement de la mémoire. Si le moteur passe à son processus de nettoyage pendant la construction d’une structure de données, des données incomplètes peuvent rester en mémoire. Une requête web spécialement conçue peut exploiter cet état incohérent pour exécuter du code avec les autorisations du processus PHP.

La Foundation a indiqué que les responsables n’avaient pas considéré, au départ, que le problème nécessitait une intervention urgente et qu’ils avaient débattu de la manière de le corriger sans rompre la compatibilité avec les extensions tierces. Elle a reconnu des erreurs de gestion. L’équipe décrite dans le rapport rétrospectif est réduite : un employé à temps plein et 14 prestataires à temps partiel maintiennent un langage de programmation largement utilisé sur le Web.

L’impact de la vulnérabilité est amplifié par le nombre d’installations qui utilisent des logiciels non pris en charge. Selon le rapport, 73 % des installations PHP fonctionnaient avec des versions en fin de vie au moment de la divulgation de la faille. Les branches de PHP actuellement prises en charge vont de la version 8.1 à la version 8.5, tandis que de nombreuses installations plus anciennes dépendent des distributions de systèmes d’exploitation ou de dépôts communautaires pour recevoir des mises à jour de sécurité.

La PHP Foundation a publié des correctifs couvrant les versions 7.4 à 8.1. D’autres organisations ont également mis à disposition des correctifs pour les anciennes versions, notamment sous la forme de paquets fournis par le développeur Debian Ondřej Surý, CloudLinux et AlmaLinux. Les fournisseurs de support commercial Ubuntu Pro et Zend ont publié des paquets pour des versions remontant jusqu’à PHP 5.5. La source indique que près de 8 % des installations utilisaient encore PHP 5.x, lancé pour la première fois en 2005.

Les pare-feu applicatifs web et d’autres outils de sécurité peuvent contribuer à bloquer ou à détecter les activités malveillantes, mais la mise à jour vers une version corrigée reste la solution directe. Cloudflare et Fastly ont ajouté la détection de PHP2Shell à leurs jeux de règles, tandis que les produits de sécurité des serveurs peuvent surveiller les activités suspectes du binaire PHP. Certains appareils réseau et dispositifs NAS intègrent également PHP et peuvent nécessiter des mises à jour.

Le rapport décrit des exploitations toujours en cours, notamment une campagne qui a combiné la faille PHP avec Fragnesia, également connu sous le nom de Dirty Frag, afin d’obtenir un accès au niveau du noyau à 25 serveurs apparemment liés au gouvernement des États-Unis. L’entreprise de sécurité BitSight a signalé de nombreuses tentatives d’intrusion PHP2Shell provenant de différentes sources au 29 octobre. À cette date, elle n’avait pas trouvé de paquet d’exploitation unique et universel, même si le rapport avertissait que la situation pouvait évoluer.

Censys a d’abord estimé qu’environ 45,7 millions des 119 millions d’installations PHP étaient vulnérables. Son décompte ultérieur a évalué à environ 29 millions le nombre de services non corrigés. Cependant, 62 % des serveurs PHP qu’elle surveille ne déclarent pas leur version, et les correctifs rétroportés peuvent ne pas modifier les numéros de version, ce qui rend difficile la détermination de l’état réel des correctifs.

Sources: Tom's Hardware.