CVE-2023-29386 — Manager for Icomoon < 2.1 - Carga Arbitraria de Archivos No Autenticada
Este README documenta una vulnerabilidad divulgada únicamente con fines educativos y defensivos. No ejecutes pruebas contra sistemas de producción o sistemas que no poseas o para los que no tengas permiso explícito de prueba.
Descubierto por: deokhunKim Estado: Divulgación pública Fecha de reporte: 2023-05-08 ID de CVE: CVE-2023-29386
Captura de pantalla
Payload 1
Payload 2
Resumen
Una vulnerabilidad en un componente de WordPress permite a usuarios no autenticados subir archivos manipulados que pueden conducir a la ejecución remota de código. El manejador de subida no valida ni sanea adecuadamente los archivos subidos, lo que permite que el contenido del archivo (incluidos archivos ejecutables o código PHP/Python) se escriba en ubicaciones accesibles desde la web.
Impacto
Ejecución remota de código (RCE) — Un atacante podría subir archivos que resulten en la ejecución arbitraria de código en el servidor.
Compromiso total del servidor — Si el proceso de WordPress se ejecuta con privilegios elevados, un exploit exitoso puede otorgar acceso a nivel de sistema.
Exposición de datos — Variables de entorno sensibles, credenciales y archivos internos podrían quedar expuestos.
Persistencia — Los atacantes pueden instalar backdoors o shells inversos para acceso a largo plazo.
CVSS (estimado): Crítico — Puntuación base ≈ 9.1
Versiones afectadas
Afectadas: versiones hasta la 2.0 inclusive (según lo reportado).
No afectadas: versiones parcheadas después de la publicación del proveedor que aborda este problema (consulta los avisos del proveedor para conocer las versiones corregidas exactas).
Instalación
Primero debes instalar el laboratorio vulnerable; hay una guía a continuación.
Si eres investigador o defensor y necesitas reproducir esto en un entorno controlado:
Usa una máquina virtual aislada o una red de contenedores sin conectividad con entornos de producción o sensibles.
Dentro del repositorio clonado, navega al directorio safe-lab y ejecuta el archivo docker-compose.yaml proporcionado para implementar la configuración de prueba.
root@kitploit:~
$ cd safe-lab
$ sudo docker compose up -d
Después del despliegue: inicio de sesión e instalación de plugins vulnerables
Abre tu navegador y ve a http://localhost (o al host/puerto donde desplegaste el laboratorio).
Completa la instalación de WordPress si se te solicita (crea una cuenta de administrador).
Una vez que hayas iniciado sesión como administrador, ve a Plugins → Añadir nuevo → Subir plugin.
Sube los archivos ZIP de los plugins vulnerables que se encuentran en el repositorio: safe-lab/manager-for-icomoon.2.0.zip y activa cada plugin.
Nota: La carpeta safe-lab contiene plugins vulnerables intencionalmente para pruebas. Instala estos únicamente en entornos de laboratorio aislados y sin conexión.
Esto iniciará tanto la instancia vulnerable de WordPress como el servicio MariaDB en un entorno de laboratorio controlado.
Advertencia: No ejecutes binarios de exploit ni realices explotación activa en redes o sistemas sin autorización explícita. Usa esta información estrictamente para investigación defensiva, validación de parches o estudio educativo en laboratorios aislados.
Mitigación y recomendaciones
Parche: Actualiza a las versiones corregidas publicadas por el proveedor tan pronto como estén disponibles.
Validación de archivos: Asegúrate de que los manejadores de subida validen los tipos de archivo, rechacen archivos que contengan tipos inesperados y nunca escriban contenido subido por el usuario en directorios expuestos a la web.
Privilegio mínimo: Ejecuta los servicios con los privilegios mínimos necesarios y utiliza cuentas/contenedores aislados para los servicios orientados a la web.
Protección del entorno: No expongas variables de entorno sensibles a los procesos de nivel de aplicación; utiliza bóvedas o gestión de secretos.
Monitoreo: Implementa monitoreo de integridad de archivos en directorios web y alerta sobre archivos ejecutables nuevos o modificados.
WAF / Filtros: Utiliza un firewall de aplicaciones web y un filtrado estricto de solicitudes/respuestas para los endpoints de subida.