Une vulnérabilité critique impactant le service PHP-CGI des serveurs Windows vient d’être publiée sous la référence CVE-2024-4577. Celle-ci obtient un score CVSS v3.1 de 9.8. Il convient de lui porter une attention particulière car de nombreuses preuves de concept sont disponibles publiquement et font déjà l’objet d’exploitations actives.
Il est important de noter que cette vulnérabilité CVE-2024-4577 existe depuis 2012 et qu’elle a été introduite lors de la correction de la vulnérabilité CVE-2012-1823.
Les détails techniques de la vulnérabilité PHP-CGI
La CVE-2024-4577 permet à un attaquant l’exécution de code arbitraire à distance sur les serveurs Windows hébergeant le système PHP, via le moteur de script PHP-CGI. Il est à noter que cette vulnérabilité peut être exploitée même si PHP n’est pas configuré en mode CGI. Ce module PHP-CGI est présent sur les serveurs web IIS et également sur le serveur XAMPP.
Les versions impactées sont les suivantes :
- 1.x antérieures à 8.1.29,
- 2.x antérieures à 8.2.20,
- 3.x antérieures à 8.3.8,
- x à 8.0.x (versions obsolètes).
Cette vulnérabilité est exploitable via la simple insertion d’un caractère « Soft Hyphen » dans les paramètres d’un URL. Celui-ci est converti automatiquement en trait d’union classique via la fonctionnalité « Best-Fit » de Windows. Mais cela permet de contourner un mécanisme de vérification de PHP, et ainsi lui faire exécuter du code via l’exécutable « php.exe ».
Il est à noter qu’à l’heure actuelle seuls les OS Windows localisés en japonais, chinois traditionnel et simplifié ont été confirmés vulnérables. Pour le reste, l’incertitude demeure. Mais des tentatives d’exploitations ont déjà été repérées partout dans le monde.
La modélisation de l'attaque avec MITRE ATT&CK
MITRE ATT&CK
- T1190 (Exploit Public-Facing Application)
IoC
L’attaque peut être repérée par la présence d’un caractère « Soft-Hyphen » (encodage %AD) dans l’URL d’une requête HTTP. Par exemple :
https://example.com/test.php?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input
Les moyens de protections avec Stormshield Network Security face à la vulnérabilité PHP-CGI
Protection face à la CVE-2024-4577
Les firewalls Stormshield Network Security (SNS) détectent et bloquent par défaut l’exploitation de la CVE-2024-4577 via leur analyse protocolaire HTTP de l’IPS. Celle-ci nécessite également que le flux SSL soit déchiffré pour les requêtes HTTPS :
- http:82 : Bad UTF-8 encoding in URL
Indice de confiance de la protection proposée par Stormshield |
Indice de confiance de l’absence de faux positif |
Recommandations face à la vulnérabilité PHP-CGI
Il est ainsi fortement recommandé de mettre à jour PHP (ou son service exploitant) vers une des versions suivantes ou ultérieures :
- 8.1.29
- 8.2.20
- 8.3.8
Le bulletin d’alerte est disponible ici : openwall.com/lists/oss-security/2024/06/07/1