Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
deco-filepush-disclosure — Divulgazione e PoC per una vulnerabilità di lettura/scrittura di file con privilegi di root nel canale di debug del TP-Link Deco XE75 Pro V3 (opcode tmpsvr 0xC456/0xF0), con analisi CVSS e decompilazione dell'handler. | Kitploit
Strumenti/GitHubGitHub/cplusplus17/deco-filepush-disclosure
Sicurezza Sistemi EmbeddedEscalation di PrivilegiSicurezza IoTAnalisi delle VulnerabilitàExploitReverse EngineeringSicurezza Hardware e IoTPaper e RicercaAnalisi del Firmware

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHubcplusplus17/deco-filepush-disclosure

deco-filepush-disclosure

Divulgazione e PoC per una vulnerabilità di lettura/scrittura di file con privilegi di root nel canale di debug del TP-Link Deco XE75 Pro V3 (opcode tmpsvr 0xC456/0xF0), con analisi CVSS e decompilazione dell'handler.

Vedi Repository
231 giorno faNon ancora revisionato

Deco XE75 Pro V3 — canale di debug autenticato dal proprietario: scrittura arbitraria di file come root

Progetto VLAN complementare: sorgente alpha sperimentale con VLAN 30 fissa per lo specifico firmware/profilo XE75 Pro V3. Richiede file stock forniti dall'operatore e non dispone di un installer generale né di un'immagine flashabile. La VLAN guest 591 resta irrisolta; il collaudo finale di accettazione su tre unità (cold-boot, UI e isolamento client) è incompleto. Vedi stato attuale.

Divulgazione di ricerca, TP-Link Deco XE75 Pro V3, firmware 1.5.0 Build 20260603 Rel.15804. Preparata per [email protected] e per il rilascio pubblico insieme alla nostra implementazione VLAN IoT 802.1Q (deco-iot-vlan).

Riepilogo

Il canale SSH di debug autenticato dal proprietario del Deco (Dropbear su TCP 20001, solo inoltro direct-tcpip, autenticazione con password) raggiunge un servizio tmpsvr interno su 127.0.0.1:20002. Uno dei suoi handler Lua, inner_file_push (opcode 0xC456), apre params.file in modalità "w" e scrive params.content verbatim come root, senza allowlist di percorsi, senza limite di dimensione e senza riduzione dei privilegi. Un opcode affine (0xF0) fornisce una lettura di file come root corrispondente. Insieme: lettura + scrittura autenticate dell'intero filesystem root, che su un router equivale all'intero dispositivo.

SSH :20001  (username = SHA1(owner_email), password = TP-Link account password)
  -> direct-tcpip -> 127.0.0.1:20002 (TMPv2)
     -> 0xC456 inner_file_push : io.open(file,"w"); write(content); close()   [root]
     -> 0x00F0 root file read  : byte-exact file read                          [root]

Impatto (verificato dal vivo, non distruttivo)

  • /etc/config è un ramfs scrivibile attivo → modifica una chiave, il router la rispetta.
  • /www è servito via HTTPS da uhttpd → i file caricati sono immediatamente raggiungibili.
  • /tp_data/user_data è una flash ubifs persistente → sopravvive al riavvio.
  • La cache delle route di LuCI può essere sostituita con Lua dell'attaccante, attivata tramite GET /cgi-bin/luci → esecuzione di Lua come root → io.popen → esecuzione arbitraria di binari come root.

Tutti e quattro i passaggi sono stati eseguiti e ripristinati sull'unità principale di proprietà del titolare.

Perché questo è nuovo — e perché tmpsvr è ancora non corretto 2 anni dopo CCS'24 / Black Hat '24

Il team UCR SecLab ha documentato pubblicamente il canale di debug :20001 -> 127.0.0.1:20002 (tmpsvr) due anni fa in CCS 2024 — "Untangling the Knot: Breaking Access Control in Home Wireless Mesh Networks" (e Black Hat USA 2024 — "Fallen Tower of Babel"). Il loro punto di ingresso sui modelli Deco più vecchi (X55, FW 1.2.2) era la fattorizzazione delle hostkey RSA a 512 bit e l'abuso di handler tmpsvr non validati.

Differenze osservate e handler rimanenti su questo firmware esatto:

  • Hanno aumentato la dimensione della hostkey ssh-rsa da 512 bit a 2048 bit (una chiave condivisa osservata su tutte e tre le unità mesh, SHA256:9feb3ac4...932a36, più ecdsa-sha2-nistp521 per unità), chiudendo il percorso di fattorizzazione a 512 bit del talk del 2024.
  • I seguenti handler a livello root sono presenti nel firmware 1.5.0:
    1. L'autenticazione con password su :20001 (svr_auth_uci) rimane attiva usando SHA1(owner_email) + la password condivisa dell'ID TP-Link.
    2. L'opcode 0xC456 (inner_file_push) apre ancora qualsiasi percorso fornito dal chiamante in modalità "w" come root senza alcuna validazione del percorso.
    3. L'opcode 0x00F0 legge ancora qualsiasi file sul filesystem come root.
    4. Persino l'opcode 0xC505 (tty2tcp/start) — l'esatto handler di command-injection /bin/sh -c senza quoting evidenziato nel paper del 2024 — è ancora presente nel firmware di giugno 2026 (1.5.0) completamente non corretto.

Affetti (come osservato)

  • Prodotto: TP-Link Deco XE75 Pro V3 (mesh a 3 unità; un'unità principale + due slave)
  • Firmware: 1.5.0 Build 20260603 Rel.15804
  • Superficie: TCP 20001 (SSH di debug) raggiungibile dalla LAN; l'handler si trova nello userspace 1.5.0 estratto (modulo luci/controller/admin/mobile_app/iot_device, inner_file_push).

Gravità (CVSS v3.1 + v4.0)

È stata dimostrata solo la raggiungibilità dalla LAN. Per il profilo osservato solo-LAN usiamo le varianti AV:A: v3.1 6.8 / v4.0 8.5. I punteggi AV:N riportati di seguito sono condizionati a un percorso di rete dimostrato; la raggiungibilità dal cloud non è verificata.

Questa è un'escalation a root post-autenticazione, con privilegi del proprietario — non una RCE non autenticata — i punteggi del profilo osservato riportati di seguito sono 6.8 (v3.1) e 8.5 (v4.0). La motivazione completa e le inflazioni rifiutate sono in docs/cvss-analysis.md.

CVSS v3.1 — valutazione solo-LAN 6.8 (Medio); variante remota condizionale 7.2 (Alto):

CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H   = 7.2 (High)
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H   = 6.8 (Medium)   # if LAN-only

Chiamate decisive: PR:H (il proprietario / account TP-Link-ID è il principale amministrativo del dispositivo) e S:U (l'handler è già in esecuzione come root — nessun confine di autorità viene attraversato). Una bozza precedente assegnava 9.9 tramite PR:L + S:C; entrambe vengono respinte.

CVSS v4.0 — valutazione solo LAN 8.5 (High); variante remota condizionale 8.6 (High):

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   = 8.6 (High)
CVSS:4.0/AV:A/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N   = 8.5 (High)       # if LAN-only
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L   = 9.3 (Critical)   # with Subsequent-System LAN/mesh impact

Il rischio nel mondo reale — una password TP-Link-ID rubata/riutilizzata che si converte in root persistente sull'intera mesh, più MITM sul traffico dei client — appartiene alla narrativa (e alle metriche Subsequent-System SC:H/SI:H/SA:L della v4.0), non a un vettore base v3.1 gonfiato.

Proof of concept

poc/deco_filepush_poc.py — autonomo (stdlib + paramiko). Credenziali solo tramite le variabili d'ambiente DECO_EMAIL / DECO_PASSWORD. Le modalità live richiedono DECO_HOSTKEY, verificata in modo indipendente: base64 grezzo, una riga di chiave pubblica, o una riga di chiave da ssh-keyscan (commenti supportati). Una scansione da sola non autentica il dispositivo. Il controllo HTTPS confronta i byte serviti ma non verifica il suo certificato. È richiesta esattamente una modalità; una verifica fallita termina con codice diverso da zero.

python3 poc/deco_filepush_poc.py --selftest        # offline framing sanity
[email protected] DECO_PASSWORD=*** DECO_HOSTKEY="$TRUSTED_DECO_HOSTKEY" \
  python3 poc/deco_filepush_poc.py --run           # write marker + readback + HTTPS check
[email protected] DECO_PASSWORD=*** DECO_HOSTKEY="$TRUSTED_DECO_HOSTKEY" \
  python3 poc/deco_filepush_poc.py --cleanup <nonce>   # overwrite marker with empty content

Il PoC scrive un singolo marcatore inerte in /www/log_export (ramfs; cancellato anche al riavvio), poi richiede una rilettura byte-exact tramite l'opcode di lettura root del dispositivo stesso e un servizio HTTPS non modificato prima di segnalare il successo.

Riepilogo della riproduzione (dal vivo, 2026-10-17)

Scarica lo strumento