
Prueba de concepto de explotación para la omisión de autenticación TDDP de TP-Link (CVE-2026-0834) que envía paquetes manipulados para ejecutar comandos administrativos como restablecimiento de fábrica y reinicio en dispositivos de la red local.
Omisión de Autenticación en el Protocolo de Depuración de Dispositivos TP-Link (TDDP) (CVE-2026-0834)
Una vulnerabilidad en el servicio TDDP (Protocolo de Depuración de Dispositivos TP-Link) permite a atacantes remotos no autenticados en la red local ejecutar comandos administrativos. Al procesar paquetes TDDPv2, un valor de pktLength de 0 hace que la rutina de descifrado DES se omita debido a la evaluación de cortocircuito. Los datos enviados más allá del encabezado de paquete de 28 bytes se colocan en el búfer donde se esperan los datos de carga útil descifrados, omitiendo la autenticación y permitiendo que se interpreten como datos de comando válidos.
Los atacantes pueden explotar esto para ejecutar funciones administrativas, incluido el restablecimiento de fábrica y el reinicio del dispositivo, sin credenciales.
Esta vulnerabilidad afecta la implementación del servicio TDDP. Se encontró que todas las versiones de firmware analizadas presentan el patrón de código vulnerable en tddp_parserHandler(). Sin embargo, no todos los dispositivos TP-Link tienen TDDP habilitado de forma predeterminada.
Esta Prueba de Concepto (PoC) se creó para el TP-Link Archer C20 V6 (firmware 0.9.1 Build 4.19/4.20). Los desplazamientos de memoria, las estructuras de comandos y las técnicas de explotación pueden diferir en otros modelos de dispositivos o versiones de firmware.
Esta PoC realiza un restablecimiento de fábrica y un reinicio en el dispositivo objetivo. Toda la configuración se borrará.
$ python3 cve-2026-0834.py
[*] Target: 192.168.0.1:1040
[*] Sending factory reset command (0x49)...
[+] Response from ('192.168.0.1', 1040): 020701000000001000010000f876a43eae343258cfd6e426a435156bc3813de141e9a2162714388fe3af8e0c
[*] Waiting 1 second...
[*] Sending reboot command (0x4A)...
[+] Response from ('192.168.0.1', 1040): 0207010000000010000100009b0361efe2560a92e1e6feba5bfe21cec3813de141e9a216660a7b69eca4e234
Edite TARGET_IP dentro del script para que coincida con la dirección IP del dispositivo objetivo.