Ni siquiera una puerta cerrada a cal y canto garantiza la privacidad.

En el router TP-Link Omada ER605 se descubrió una cadena de vulnerabilidades que permite la ejecución remota de código sin autorización previa. Un investigador independiente publicó el análisis de la mecánica del ataque y la reproducción del exploit tras estudiar el servicio interno de DNS dinámico que el dispositivo usa para actualizar los registros de la red.
El problema afecta a los routers VPN TP-Link ER605 con versiones de firmware anteriores a ER605(UN)_V2_2.2.4. En el centro del ataque está el demonio cmxddnsd, responsable del servicio DDNS. Se ejecuta con privilegios máximos y procesa las respuestas de los servidores de DNS dinámico. Durante el análisis se determinó que el procesamiento de los paquetes de red tiene errores en la comprobación de la longitud de los campos, lo que permite un desbordamiento de búfer y la toma de control del flujo de ejecución.
El ataque se basa en la combinación de tres vulnerabilidades identificadas como CVE-2024-5242, CVE-2024-5243 y CVE-2024-5244. La primera está relacionada con la suplantación de mensajes internos de DDNS debido a la dependencia de una implementación de codificación oculta y una clave integrada. La segunda y la tercera permiten provocar un desbordamiento de búfer al analizar nombres de servidores y códigos de error en respuestas DDNS. Todos los fallos se concentran en una función de análisis de paquetes entrantes.
El protocolo DDNS de este fabricante utiliza un esquema de codificación propio y un alfabeto Base64 modificado junto con cifrado DES. La clave está incrustada directamente en el archivo binario. Tras el análisis inverso del algoritmo, fue posible generar respuestas de servidor que parecen legítimas y dirigir al router hacia el escenario de procesamiento deseado.
La explotación se realiza en dos fases. Primero, el atacante provoca la filtración de direcciones desde la memoria mediante el desbordamiento de estructuras globales y el envío de una consulta DNS especialmente manipulada y de mayor tamaño. Esto permite eludir la aleatorización del espacio de direcciones. Después se aprovecha un desbordamiento de la pila en el campo ErrorCode. A través de él se sustituye la dirección de retorno y se construye una cadena de llamadas ROP para ejecutar un comando del sistema.
Para llevar a cabo el ataque se requiere una posición de intermediario en el tráfico de red entre el dispositivo y los servidores DNS externos. En el escenario descrito se empleó un servidor DHCP falso que se hace pasar por la puerta de enlace y por un nodo DNS. A partir de ese momento, todo el tráfico externo del router pasa por el nodo del atacante, lo que permite suplantar las respuestas del servicio DDNS.
Como resultado, es posible ejecutar comandos en el sistema con los privilegios de administrador del dispositivo. Las limitaciones de longitud de la carga útil se sortean cargando un guion auxiliar desde un servidor remoto. El exploit PoC ya fue publicado por el autor del estudio en acceso abierto. Se recomienda al fabricante actualizar el firmware a la versión corregida.