Vulnérabilité dans PHP
⚠ Alerte CERT-FR ⚠
RISQUE(S)
- Exécution de code arbitraire à distance
SYSTÈMES AFFECTÉS
- PHP versions 7.3.x antérieures à 7.3.11
- PHP versions 7.2.x antérieures à 7.2.24
- PHP versions 7.1.x antérieures à 7.1.33
RÉSUMÉ
Le CERT-FR a publié un avis concernant la CVE-2019-11043 qui affecte PHP et permet l'exécution de code arbitraire à distance.
Un code d'exploitation est maintenant disponible sur internet, facilitant l'utilisation de cette vulnérabilité.
Ce code d'exploitation nécessite une configuration communément recommandée de nginx et php-fpm utilisant fastcgi_split_path_info
. Voici un exemple de configuration vulnérable:
location ~ [^/]\.php(/|$) {
...
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
...
}
Il est possible que d'autres chemins d'exploitation non connus à ce jour permettent d'abuser de la vulnérabilité.
Le CERT-FR recommande fortement la mise à jour de php vers une version non vulnérable, et ce dans les plus brefs délais si votre configuration nginx utilise fastcgi_split_path_info
.
Les versions de PHP antérieures à 7.1 peuvent être également affectées, et ne bénéficieront pas de mise à jour. Il est primordial d'utiliser une version supportée par l'éditeur.
CONTOURNEMENT PROVISOIRE
Il est possible de se prémunir contre ce code d'exploitation en vérifiant l'existence du fichier PHP. Ainsi, les requêtes malformées sont filtrées au niveau de nginx, de cette manière l'attaquant n'est pas capable d'exploiter la vulnérabilité dans php-fpm.
Afin de mettre en place ce contournement provisoire, il faut insérer try_files $uri =404;
avant de passer la requête à php-fpm (avant la ligne fastcgi_pass
dans l'exemple plus haut).
SOLUTION
Il est recommandé de mettre à jour PHP vers une version non vulnérable sans attendre.
DOCUMENTATION
- Avis du CertFR du 24 octobre 2019
https://www.cert.ssi.gouv.fr/avis/CERTFR-2019-AVI-534/ - Bulletin de sécurité PHP 7.3.11 du 24 octobre 2019
https://www.php.net/ChangeLog-7.php#7.3.11 - Bulletin de sécurité PHP 7.2.24 du 24 octobre 2019
https://www.php.net/ChangeLog-7.php#7.2.24 - Bulletin de sécurité PHP 7.1.33 du 24 octobre 2019
https://www.php.net/ChangeLog-7.php#7.1.33 - Référence CVE CVE-2019-11043
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11043 - Article de la société Tenable du 24 octobre 2019
https://www.tenable.com/blog/cve-2019-11043-vulnerability-in-php-fpm-could-lead-to-remote-code-execution-on-nginx
Source : CERT FR