Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Securifi Almond, Almond + y Almond 2015 (CVE-2017-8335)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-119 Restricción de operaciones inapropiada dentro de los límites del búfer de la memoria
Fecha de publicación:
18/06/2019
Última modificación:
20/06/2019

Descripción

Se descubrió un problema en los dispositivos Securifi Almond, Almond + y Almond 2015 con firmware AL-R096. El dispositivo proporciona al usuario la capacidad de configurar el nombre de la red inalámbrica. Estos valores son almacenados por el dispositivo en NVRAM (RAM no volátil). Parece que los parámetros POST pasados en esta solicitud para configurar nombres en el dispositivo no tienen una verificación de longitud de cadena en ellos. Esto permite que un atacante envíe una gran carga útil en el parámetro POST "mssid_1". El dispositivo también permite que un usuario vea el nombre de la red Wifi configurada por el usuario. Mientras procesa esta solicitud, el dispositivo llama a una función llamada "getCfgToHTML" en la dirección 0x004268A8 que recupera el valor establecido anteriormente por el parámetro "mssid_1" como SSID2 y este valor produce un desbordamiento de la configuración de pila para esta función y permite que un atacante controle Valor de registro de $ra en la pila que permite a un atacante controlar el dispositivo ejecutando una carga útil a elección del atacante. Si la versión de firmware AL-R096 se disecciona con la herramienta binwalk, obtenemos un archivo cpio-root que contiene el sistema de archivos configurado en el dispositivo que contiene todos los archivos binarios. El binario "goahead" es el que tiene la función vulnerable que recibe los valores enviados por la solicitud POST. Si abrimos este binario en IDA-pro, notaremos que esto sigue un formato MIPS little endian. La función sub_00420F38 en IDA pro está identificada para recibir los valores enviados en el parámetro POST "mssid_1" en la dirección 0x0042BA00 y luego se establece en la NVRAM en la dirección 0x0042C314. El valor se recupera posteriormente en la función "getCfgToHTML" en la dirección 0x00426924 y esto provoca el desbordamiento del búfer debido a la función "strcat" que utiliza esta función.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:securifi:almond_2015_firmware:al-r096:*:*:*:*:*:*:*
cpe:2.3:h:securifi:almond_2015:-:*:*:*:*:*:*:*
cpe:2.3:o:securifi:almond\+firmware:al-r096:*:*:*:*:*:*:*
cpe:2.3:h:securifi:almond\+:-:*:*:*:*:*:*:*
cpe:2.3:o:securifi:almond_firmware:al-r096:*:*:*:*:*:*:*
cpe:2.3:h:securifi:almond:-:*:*:*:*:*:*:*