
Aviso de seguridad para la vulnerabilidad de desbordamiento de búfer en TOTOLINK a720r
Fabricante: TOTOLINK
Sitio web del fabricante: TOTOLINK
Modelo: A720R
Versión de firmware: V4.1.5cu.630_B20250509
Dirección de descarga del firmware: TOTOLINK
Puntuación base CVSS v4.0: 8.7 (Alta)
Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Existe un desbordamiento de búfer basado en pila en el binario de firmware cstecgi.cgi que permite a un administrador autenticado secuestrar el flujo de control del proceso y ejecutar rutas de código existentes dentro del binario. La vulnerabilidad puede activarse enviando una solicitud manipulada al manejador setMacFilterRules que contenga un valor excesivamente largo de un parámetro desc, el cual se copia en un búfer de pila de tamaño fijo mediante strcpy() sin ninguna comprobación de límites, sobrescribiendo la dirección de retorno guardada.

El código vulnerable se encuentra dentro del binario cstecgi.cgi, donde el valor proporcionado de desc se copia en un búfer de pila sin validación de longitud, lo que permite sobrescribir la dirección de retorno guardada y redirigir el flujo de control del programa. Dado que el binario está compilado sin canarios de pila y sin PIE, el desbordamiento pasa desapercibido y la ejecución puede redirigirse de forma fiable a código ubicado en direcciones fijas dentro del binario.


Al sobrescribir la dirección de retorno guardada, el flujo de control se redirigió a funciones existentes dentro del binario. Esto se demostró invocando una llamada sleep(2) (confirmando el control fiable del puntero de instrucción mediante un retraso medible en la respuesta del dispositivo), la rutina de reinicio del sistema, la función de cierre de sesión y la rutina de borrado de registros.


El flujo de control se redirigió además a la rutina responsable de iniciar el servicio Telnet, habilitando Telnet en el dispositivo.

Como resultado, un atacante autenticado con acceso de red al dispositivo objetivo puede secuestrar el flujo de ejecución del proceso cstecgi.cgi y ejecutar rutas de código arbitrarias dentro del binario, comprometiendo la confidencialidad, integridad y disponibilidad del dispositivo.