Les créateurs de PHP préviennent sur le site officiel du projet que deux failles de sécurité critiques ont été découvertes dans le code source du langage. Avec des notes de 9,2/10 selon le système de notation des vulnérabilités, elles pourraient permettre d’exécuter du code à distance, sans authentification. Elles sont en tout cas si sérieuses que les développeurs n’ont donné aucun détail à leur sujet, si ce n’est qu’elles seront rendues publiques dans l’après-midi, au plus tard à 16 heures en France. Dès lors, tous les serveurs PHP devront être mis à jour pour combler la faille. Si ce n’est pas possible, la recommandation du service de cybersécurité des institutions européennes fait froid dans le dos : isoler les serveurs, pour qu’ils ne soient plus accessibles depuis internet.
Avant d’avoir tous les détails techniques et surtout les correctifs distribués par les créateurs de PHP, un chercheur a publié une analyse et du code censés reproduire les failles. J4ck3LSyN détaille sur son site qu’une partie du problème est liée au suivi de la progression d’un téléversement (upload) dans le cadre d’une session PHP. S’il propose un contournement qui implique de modifier les fichiers de configuration du serveur, l’un des responsables du développement du langage indique très clairement que ce n’est pas suffisant pour se protéger pleinement contre les deux attaques.
Si vous gérez un serveur qui fait tourner PHP, vous pouvez toujours désactiver ce suivi en ajoutant cette ligne dans un fichier de configuration php.ini. Rechargez ou redémarrez ensuite le service PHP associé pour que ce soit effectif sur votre instance. Néanmoins, il faut garder à l’esprit que cela ne couvre qu’une partie des problèmes et qu’une mise à jour restera essentielle tout à l’heure.
session.upload_progress.enabled = Off
D’après ce que l’on sait, le projet PHP devrait fournir des correctifs pour PHP 8.2 et les versions suivantes (8.3, 8.4 et 8.5), mais rien avant. C’est un point essentiel, puisque la branche 7.x a été abandonnée, alors même qu’elle reste utilisée sur un grand nombre de serveurs. D’après les statistiques collectées par W3Techs.com, PHP 8 ne représente que 65 % des sites web qui utilisent cette technologie, ce qui veut dire qu’au moins 35 % pourraient rester vulnérables. C’est d’autant plus dangereux que des analyses préalables estiment que toutes les variantes depuis PHP 5 pourraient être concernées. Bien sûr, d’autres acteurs pourraient corriger davantage de versions, le code étant ouvert.
PHP reste un géant du web, ce qui aggrave forcément la situation. Ce langage né dans les années 1990 permet de créer des pages HTML de façon dynamique, typiquement à partir d’informations stockées dans une base de données dans le cadre d’un gestionnaire de contenus (CMS). Depuis ses premières versions assez simples, il a beaucoup évolué pour devenir un langage de programmation complet. Malgré l’émergence de nombreuses alternatives au fil des années, il reste dominant aujourd’hui : on estime qu’il concerne près de 70 % des sites web accessibles publiquement et dont la technologie sous-jacente est connue. Parmi ses utilisateurs figurent de grands noms, à commencer par Wikipédia ou Archive.org. Tous les sites bâtis sur WordPress dépendent de lui, ce qui représente déjà près de 40 % des sites connus. Drupal, son concurrent que nous utilisons encore à MacGeneration, repose aussi sur PHP.
C’est pourquoi ces vulnérabilités font si peur : on sait très bien que ces millions de serveurs ne seront pas mis à jour dans la minute qui suit leur publication, si bien que des attaques sont à prévoir. Au-delà du temps nécessaire à l’installation des mises à jour distribuées aujourd’hui, certaines installations ne pourront surtout pas être mises à niveau immédiatement. Passer à PHP 8 impose de nombreux changements techniques et parfois des réécritures lourdes, ce qui n’est pas toujours envisageable, surtout pas dans l’urgence.
On ne sait pas encore si une IA a contribué à la découverte des deux failles du jour. Il faudra patienter jusqu’à la publication des mises à jour et du détail des vulnérabilités pour en savoir plus. Une chose est sûre : si vous gérez des serveurs avec PHP, préparez-vous à les mettre à jour au plus vite d’ici la fin de la journée.













