
Demostración educativa de CVE-2022-46169: ejecución remota de código no autenticado en Cacti ≤1.2.22 mediante omisión de autorización e inyección de comandos. Incluye configuración de laboratorio, reproducción del exploit y análisis de impacto.
Aquí está el documento de explicación reformateado:
Este proyecto es un ejercicio de ciberseguridad que demuestra CVE‑2022‑46169: una vulnerabilidad crítica en la plataforma de monitoreo de red de código abierto Cacti (versiones ≤ 1.2.22). La vulnerabilidad permite que un atacante no autenticado ejecute comandos arbitrarios del sistema operativo en el servidor — sin necesidad de inicio de sesión.
El objetivo de este proyecto es comprender la vulnerabilidad, reproducirla en un entorno de laboratorio controlado y demostrar su impacto.
CVE‑2022‑46169 es una combinación de dos fallos en Cacti:
El archivo remote_agent.php normalmente solo debería ser accesible por el propio servidor Cacti. Sin embargo, la comprobación de autenticación confía ciegamente en la cabecera HTTP , que puede ser configurada por el atacante. Esto permite que cualquiera se haga pasar por el propio servidor — sin contraseña.
X-Forwarded-ForEl parámetro poller_id de la URL se inserta directamente en un comando de shell sin validación a través de proc_open() de PHP. Un atacante puede así hacer que el servidor web ejecute sus propios comandos.
Resultado combinado: un atacante completamente no autenticado puede ejecutar comandos arbitrarios en el servidor — también conocido como Ejecución Remota de Código (RCE).
| Propiedad | Detalles |
|---|---|
| Puntuación CVSS | 9.8 – Crítica |
| Autenticación requerida | ❌ No |
| Interacción del usuario | ❌ No |
| Impacto | Control total del servidor |
| Versiones afectadas | Cacti ≤ 1.2.22 |
| Parcheado en | Cacti 1.2.23 |
Un atacante solo necesita conocer la dirección IP de una instalación vulnerable de Cacti. No se requiere ninguna cuenta ni ingeniería social.
El atacante envía una única solicitud HTTP a remote_agent.php con:
X-Forwarded-For falsificada → omisión de la autenticaciónpoller_id con un comando de shell incrustado mediante ; → inyección de comandosEl servidor ejecuta este comando como el usuario www-data (el usuario del servidor web Apache). En la práctica, un atacante puede así abrir una shell inversa y obtener acceso completo al servidor.
docs/ — Informe, capturas de pantalla y notas para el ejercicio.isos/ — Imágenes de VM o recursos de contenedor con la instalación vulnerable de Cacti.Este proyecto forma parte de un ejercicio de ciberseguridad que se enfoca en:
⚠️ Aviso legal: Este proyecto está destinado únicamente a fines educativos en un entorno de laboratorio controlado y aislado. Nunca utilices exploits en sistemas sin autorización explícita.