Ejecución de código remoto y denegación de servicio en Asterisk

Asterisk ha publicado dos actualizaciones de seguridad para solucionar dos vulnerabilidades que podrían permitir a atacantes en la misma red local 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-010, permite a un atacante en la misma red local ejecutar código remoto. El fallo se da por no comprobar el tamaño de una cadena de texto que recibe la centralita, concretamente de la cadena de texto que contiene el usuario al que se llama. Cuando la centralita crea el CDR (call detail record, un registro que contiene información de llamada como los usuarios, la duración…) y copia esta cadena de texto que proviene de fuera, puede exceder el tamaño máximo y desbordar la memoria, el famoso buffer overflow. En este caso, esto se puede explotar hasta ejecutar código arbitrario si la cadena se diseña especialmente. La solución consiste básicamente en comprobar que no se excede el tamaño básico al copiar la cadena de texto.

La segunda vulnerabilidad, descrita en el boletín AST-2017-011, podría permitir a un atacante en red local causar una denegación de servicio. El fallo se produce cuando una llamada se rechaza antes de establecerse. Cuando esto ocurre, cierta parte de la memoria de la centralita no se libera (cuando debería hacerlo, ya que es memoria temporal con información de la llamada cancelada). Al ser posible realizarlo sin límite, se podría llegar a quedar sin memoria la centralita si se realiza demasiadas veces el proceso de llamada y su cancelación. La solución pasa por liberar la memoria correctamente.


Ambas vulnerabilidades afectan a Asterisk Open Source en sus ramas 13, 14 y 15 y a Certified Asterisk en su versión 13.13 (aunque la primera vulnerabilidad sólo afecta a la rama 13 de Asterisk Open Source a partir de la versión 
13.5.0). Actualizar a las últimas versiones de cada rama soluciona estos problemas.

Carlos Ledesma
cledesma@hispasec.com


Más información:

Buffer overflow in CDR’s set user
Memory/File Descriptor/RTP leak in pjsip session resource

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

Social Media Auto Publish Powered By : XYZScripts.com