5 vulnerabilidades críticas en la API de código abierto de PJSIP afectan a millones de usuarios de WhatsApp. Actualice inmediatamente

Los equipos de seguridad de JFrog reportan el hallazgo de 5 vulnerabilidades en PJSIP, una biblioteca de comunicación multimedia desarrollada por Teluu. Según el reporte, la explotación exitosa de estas fallas permitiría a los actores de amenazas llevar a un escenario de ejecución de código arbitrario en las aplicaciones que usan esta biblioteca.

Esta biblioteca proporciona una API que pueden utilizar las aplicaciones de telefonía IP, como los teléfonos VoIP y las aplicaciones de videoconferencias. Es utilizado hoy en día por las aplicaciones de comunicación más populares del mundo, como WhatsApp y BlueJeans.

A continuación se presentan breves descripciones de las fallas reportadas, además de sus respectivas claves de identificación y puntajes asignados según el Common Vulnerability Scoring System (CVSS).

CVE-2021-43299 (CVSS 8.1/10): La falla reside en pjsua_player_create, que crea un reproductor de archivos y lo agrega automáticamente al puente de conferencia. Esta función contiene una vulnerabilidad de desbordamiento de pila:

La característica filename->ptr se copia a la ruta sin verificar que filename->slen tenga como máximo el tamaño asignado de la ruta, que es PJ_MAXPATH<c/ode> (260). Por lo tanto, pasar un nombre de archivo de más de 260 caracteres provocará un desbordamiento de la pila.

CVE-2021-43300 & CVE-2021-43302 (CVSS 8.1/10): Estas fallas residen en pjsua_recorder_create(), encargado de crear una grabadora de archivos y conecta automáticamente esta grabadora al puente de conferencia, llevando a un desbordamiento de búfer basado en pila.

CVE-2021-43302 existe debido a que pjsua_recorder_create no verifica si la longitud del nombre de archivo es al menos 4. Si el nombre de archivo es más corto que 4, pj_stricmp2 provocará una lectura fuera de los límites al comparar las cadenas.

Por otra parte, CVE-2021-43300 existe debido a que filename->ptr se copia con memcpy a la variable de la pila de ruta sin verificar que filename->slen tenga como máximo el tamaño asignado a la ruta, que es PJ_MAXPATH (260).

CVE-2021-43301 (CVSS 5.9/10): Esta también es una falla de desbordamiento de pila que afecta a pjsua_playlist_create, que crea un puerto multimedia de lista de reproducción de archivos y agrega automáticamente el puerto al puente de conferencia. Al inicio, pjsua_playlist_create llama a pjmedia_wav_playlist_create con el argumento file_names asignado como file_list:

La función copia cada nombre de archivo de file_list a filename sin verificar si su longitud es como máximo PJ_MAXPATH (260). Si la longitud del nombre del archivo es más larga, se creará el desbordamiento de búfer basado en pila.

CVE-2021-43303 (CVSS 5.9/10): Error de desbordamiento de búfer en pjsua_call_dump, una función que descarga estadísticas de llamadas en un búfer determinado:

La función usa tmp para almacenar las estadísticas temporalmente y luego las copia en el búfer de argumentos de salida sin validar que maxlen sea como máximo len. Esto puede provocar un desbordamiento del búfer si la capacidad del parámetro bufer dado es menor que len.

La corrección de estas fallas requiere actualizar PJSIP a la versión 2.12, por lo que los desarrolladores recomiendan abordar las fallas a la brevedad.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).