Une nouvelle vulnérabilité d’exécution de code à distance (RCE) PHP pour Windows a été divulguée, affectant toutes les versions depuis la version 5.x, affectant potentiellement un grand nombre de serveurs dans le monde entier.

PHP est un langage de script open source largement utilisé conçu pour le développement Web et couramment utilisé sur les serveurs Windows et Linux.

La nouvelle faille RCE identifiée comme CVE-2024-4577 a été découverte par Orange Tsai, chercheur principal en sécurité chez Devcore, le 7 mai 2024, qui l’a signalée aux développeurs PHP.

Les responsables du projet PHP ont publié un correctif hier, corrigeant la vulnérabilité.

Cependant, l’application de mises à jour de sécurité sur un projet avec un déploiement à si grande échelle est compliquée et pourrait potentiellement laisser un nombre important de systèmes vulnérables aux attaques pendant de longues périodes.

Malheureusement, lorsqu’une vulnérabilité critique affectant de nombreux appareils est divulguée, les auteurs de menaces et les chercheurs commencent immédiatement à tenter de trouver des systèmes vulnérables.

C’est le cas avec CVE-2024-4577, car la Fondation Shadowserver a déjà détecté plusieurs adresses IP recherchant des serveurs vulnérables.

La faille CVE-2024-4577
La faille CVE-2024-4577 est causée par un oubli dans la gestion des conversions d’encodage de caractères, en particulier la fonctionnalité « Best-Fit » sous Windows lorsque PHP est utilisé en mode CGI.

« Lors de la mise en œuvre de PHP, l’équipe n’a pas remarqué la fonctionnalité de conversion d’encodage la mieux adaptée au système d’exploitation Windows », explique un avis de DevCore.

« Cet oubli permet aux attaquants non authentifiés de contourner la protection précédente de CVE-2012-1823 par des séquences de caractères spécifiques. Du code arbitraire peut être exécuté sur des serveurs PHP distants via l’attaque par injection d’arguments. »

Cette faille contourne les protections que l’équipe PHP avait implémentées dans le passé pour CVE-2012-1823, qui a été exploitée dans des attaques de logiciels malveillants plusieurs années après sa remédiation.

Les analystes expliquent que même si PHP n’est pas configuré en mode CGI, CVE-2024-4577 peut toujours être exploitable tant que les exécutables PHP (par exemple, php.exe ou langage de programmation PHP.exe) se trouvent dans des répertoires accessibles par le serveur Web.

Comme il s’agit de la configuration par défaut sur XAMPP pour Windows, DEVCORE avertit que toutes les installations XAMPP sur Windows sont probablement vulnérables.

Le problème est pire lorsque certaines localisations plus sensibles à ce défaut de conversion d’encodage sont utilisées, notamment le chinois traditionnel, le Chinois simplifié et le Japonais.

Comme le dit Devcore, la vulnérabilité CVE-2024-4577 affecte toutes les versions de PHP pour Windows, si vous utilisez PHP 8.0( Fin de vie), PHP 7.x (fin de vie), ou PHP 5.x (EoL), vous devez soit effectuer une mise à niveau vers une version plus récente, soit utiliser les mesures d’atténuation décrites ci-dessous.

Stratégie d’assainissement
Ceux qui utilisent des versions PHP prises en charge doivent passer aux versions qui intègrent les correctifs: PHP 8.3.8, PHP 8.2.20 et PHP 8.1.29.

Pour les systèmes qui ne peuvent pas être immédiatement mis à niveau et les utilisateurs de versions en fin de vie, il est recommandé d’appliquer une règle mod_rewrite pour bloquer les attaques, comme suit:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? – [F,L]

Si vous utilisez XAMPP et que vous n’avez pas besoin de la fonctionnalité PHP CGI, recherchez la directive ‘ScriptAlias’ dans le fichier de configuration Apache (généralement à ‘C:/xampp/apache/conf/extra/httpd-xampp.conf’) et commentez-le.

Les administrateurs peuvent déterminer s’ils utilisent PHP-CGI en utilisant la fonction phpinfo() et en vérifiant la valeur ‘API serveur’ dans la sortie.

DEV CORE suggère également aux administrateurs système d’envisager de migrer de CGI vers des alternatives plus sécurisées, telles que FastCGI, PHP-FPM et Mod-PHP.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *