martes, 5 de septiembre de 2017

Actualización de seguridad para Asterisk

Asterisk ha publicado tres actualizaciones de seguridad para solucionar tres vulnerabilidades que podrían permitir a atacantes remotos o en red local revelar información sensible, causar una denegación de servicio o ejecutar código arbitrario en los sistemas afectados.


Asterisk es una implementación de una central telefónica (PBX) de código abierto. Como cualquier PBX, se pueden conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectarlos a un proveedor de VoIP para realizar comunicaciones con el exterior. Asterisk es ampliamente usado e incluye un gran número de interesantes características: buzón de voz, conferencias, IVR, distribución automática de llamadas, etc. Además el software creado por Digium está disponible para plataformas Linux, BSD, MacOS X, Solaris y Microsoft Windows.

La primera vulnerabilidad, explicada en el boletín AST-2017-005, permite a un atacante remoto obtener información sensible forzando que se le envíe información multimedia. El fallo tiene su origen en una relajación de las políticas de manejo de RTP, que permitían que una nueva fuente enviando RTP pudiese suplantar una fuente anterior (permitía el cambio de dirección de la fuente). Si la opción de RTP simétrico está activa, la nueva fuente suplantadora recibiría toda la información multimedia del nodo. La solución incluye una serie de mitigaciones y cambios en la política de envío y recepción de RTP.

La segunda vulnerabilidad, descrita en el boletín AST-2017-006, permite a un atacante en red local ejecutar código arbitrario en una shell del sistema. El fallo es un clásico, pasar un comando a la shell usando parámetros no escapados correctamente. De esta forma, se puede introducir un parámetro especialmente manipulado que rompa la lógica de lectura de la shell y permita ejecutar comandos arbitrarios en ésta. En este caso, los parámetros son el nombre de la persona que llama y su número, que son parámetros proporcionados desde fuera y por tanto no fiables. La solución pasa por no dejar que la shell sea la encargada de separar los parámetros entre sí.

La última vulnerabilidad, comentada en el boletín AST-2017-007, permite a un atacante remoto causar una denegación de servicio, haciendo que Asterisk caiga. El problema reside en la lectura de las cabeceras From, To y Contact, que puede fallar al leer una URI especialmente manipulada, tirando el sistema. La solución consiste en reforzar la lectura de estas cabeceras para que no falle con esas URI's.

Las dos primeras vulnerabilidades afectan a Asterisk Open Source en sus ramas 11, 13 y 14 y a Certified Asterisk en sus ramas 11.6 y 13.13, y la última vulnerabilidad afecta sólo a Asterisk Open Source en sus versiones 13.15.0 y 14.4.0. Actualizar a las últimas versiones de cada rama soluciona estos problemas.


Carlos Ledesma

Más información:

Media takeover in RTP stack - ASTERISK-2017-005

Shell access command injection in app_minivm - ASTERISK-2017-006

Remote Crash Vulnerability in res_pjsip - ASTERISK-2017-007