Risque
- Exécution de code arbitraire à distance
Systèmes affectés
- PHP versions 7.1.x antérieures à 7.1.33
- PHP versions 7.2.x antérieures à 7.2.24
- PHP versions 7.3.x antérieures à 7.3.11
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.
Solution
Le CERT-FR recommande de mettre à jour PHP vers une version non vulnérable sans attendre.
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).
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.1.33 du 24 octobre 2019 https://www.php.net/ChangeLog-7.php#7.1.33
- 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.3.11 du 24 octobre 2019 https://www.php.net/ChangeLog-7.php#7.3.11
- 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
- Référence CVE CVE-2019-11043 https://www.cve.org/CVERecord?id=CVE-2019-11043