
Proof-of-concept exploit per TP-Link TDDP authentication bypass (CVE-2026-0834) che invia pacchetti appositamente costruiti per eseguire comandi amministrativi come reset di fabbrica e riavvio su dispositivi di rete locale.
Bypass dell'autenticazione del protocollo di debug dei dispositivi TP-Link (TDDP) (CVE-2026-0834)
Una vulnerabilità nel servizio TDDP (TP-Link Device Debug Protocol) consente a utenti remoti non autenticati sulla rete locale di eseguire comandi amministrativi. Quando si elaborano pacchetti TDDPv2, un valore pktLength pari a 0 fa sì che la routine di decrittazione DES venga saltata a causa della valutazione a corto circuito. I dati inviati oltre l'intestazione del pacchetto di 28 byte vengono inseriti nel buffer dove ci si aspetta il payload decrittato, bypassando l'autenticazione e consentendo che vengano interpretati come dati di comando validi.
Gli attaccanti possono sfruttare questa vulnerabilità per eseguire funzioni amministrative, inclusi il ripristino alle impostazioni di fabbrica e il riavvio del dispositivo, senza credenziali.
Questa vulnerabilità interessa l'implementazione del servizio TDDP. Tutte le versioni del firmware analizzate presentano il pattern di codice vulnerabile in tddp_parserHandler(). Tuttavia, non tutti i dispositivi TP-Link hanno TDDP abilitato per impostazione predefinita.
Questa Proof of Concept (PoC) è stata creata per il TP-Link Archer C20 V6 (firmware 0.9.1 Build 4.19/4.20). Gli offset di memoria, le strutture dei comandi e le tecniche di sfruttamento possono differire su altri modelli di dispositivi o versioni del firmware.
Questa PoC esegue un ripristino alle impostazioni di fabbrica e un riavvio sul dispositivo di destinazione. Tutta la configurazione verrà cancellata.
$ 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
Modifica TARGET_IP all'interno dello script per farlo corrispondere all'indirizzo IP del dispositivo di destinazione.