
Tozed ZLT X300 5G CPE — Esecuzione remota di codice come root tramite stazione base canaglia SDR (CVE-2026-2035703, CWE-78, CVSS 9.8) — Divulgazione coordinata
Stato: In divulgazione coordinata (embargo di 90 giorni)
Scoperta: 2026-08-08
Ricercatore: Muhammad Nadeem Danish (danish1162)
ID CVE: CVE-2026-2035703
Gravità: Critica (CVSS 9.8)
CWE: CWE-78 (Iniezione di Comandi di Sistema Operativo)
Il router CPE 5G Tozed ZLT X300 contiene una vulnerabilità critica di iniezione di comandi sfruttabile over-the-air tramite una stazione base LTE rogue (SDR). Il client TR-069/CWMP del dispositivo (netcwmpd) passa input non sanificati controllati dalla rete in comandi shell, consentendo l'esecuzione remota non autenticata di codice come root.
Un attaccante che opera una radio definita via software (~$300 USD) nel raggio radio può impersonare il server ACS TR-069 dell'operatore e iniettare comandi shell arbitrari che vengono eseguiti come root sul dispositivo target — con zero autenticazione, zero interazione con l'utente e zero accesso fisico.
SDR dell'attaccante (~$300)
↓
eNodeB LTE Rogue (srsRAN, banda di frequenza di test)
↓ Segnale più forte → X300 si connette automaticamente
EPC Rogue assegna IP (172.16.0.x)
↓
Impersonazione ACS TR-069 (tramite DHCP Option 43)
↓
SetParameterValues: IPPingDiagnostics.Host = $(telnetd -l /bin/sh -p 4444)
↓
Il dispositivo esegue: ping "$(telnetd -l /bin/sh -p 4444)" come root
↓
SHELL ROOT sulla porta 4444 — uid=0(root) gid=0(root)
Il gestore IPPingDiagnostics in netcwmpd passa il parametro Host direttamente in una stringa di formato sprintf che costruisce un comando shell:
// Decompilato da netcwmpd a 0x463E6C (IDA Pro)
sprintf(cmd,
"ping%s -c %d -s %d -W %u%s \"%s\" > /tmp/.tr069_pingtest.log",
ipv4_flag, repetitions, block_size, timeout, interface,
HOST); // HOST = parametro TR-069 non sanificato
Il comando viene quindi eseguito tramite system() come root. Non viene eseguita alcuna validazione dell'input sul parametro Host — nessun filtraggio dei caratteri, nessun controllo regex, nessuna validazione della lunghezza oltre il buffer di 512 byte.
La sostituzione di comando $() viene valutata all'interno delle doppie virgolette dalla shell POSIX, consentendo l'esecuzione di comandi arbitrari.
Lo ZLT X300 è distribuito dagli operatori in:
Medio Oriente: du (EAU), STC e Mobily (Arabia Saudita), Zain (Kuwait, Bahrein), Ooredoo e Omantel (Oman)
Europa: EE, O2, Three (Regno Unito), Telekom (Germania), TIM (Italia), Free Mobile, SFR, Orange (Francia)
Asia: Singtel (Singapore), AIS (Thailandia), Smart (Filippine), Telkomsel (Indonesia)
Africa: MTN e Vodacom (Sudafrica), MTN (Nigeria)
Ogni dispositivo con il firmware attuale è vulnerabile.
Tutta la scoperta della vulnerabilità è stata eseguita tramite analisi statica del firmware utilizzando IDA Pro — decompilando i binari ARM e tracciando i percorsi di esecuzione del codice dall'input del parametro TR-069 attraverso sprintf fino ai sink di esecuzione della shell.
Tutta la verifica hardware dal vivo e i test di proof-of-concept sono stati condotti in un ambiente di laboratorio privato in Pakistan, su apparecchiature di proprietà personale, utilizzando una scheda SIM di test programmabile sysmocom sysmoISIM-SJA5 (prefisso IMSI 999 — rete di test riservata ITU, non un operatore commerciale) su una banda di frequenza non occupata (Banda 7, 2655 MHz — non utilizzata dagli operatori degli EAU). Nessuna rete commerciale attiva è stata interessata, nessun dispositivo di altri abbonati è stato coinvolto e nessuna trasmissione è stata effettuata su spettro commerciale con licenza.
advisory/
TECHNICAL_REPORT.md Analisi completa della vulnerabilità con decompilazione IDA
VENDOR_ADVISORY.md Notifica al produttore formattata
MITRE_CVE_REQUEST.md Dettagli della registrazione CVE
ZTE_PSIRT_EMAIL.md Registro della comunicazione con il produttore
netcwmpd in IDA Pro o Ghidraprocess_ping all'indirizzo 0x463A14Host da SetParameterValues TR-069 attraverso sprintf fino al comando shellsystem()Il produttore (Tozed Kangwei) non dispone di un Product Security Incident Response Team (PSIRT). Tutta la corrispondenza proveniva dal loro dipartimento Global Marketing. Hanno dichiarato che la vulnerabilità era "già corretta" ma non hanno potuto fornire un numero CVE, una versione del firmware patchata o un advisory di sicurezza. Non esiste alcuna registrazione pubblica di una correzione precedente su NVD, OpenCVE, CVE Details o nelle pubblicazioni del produttore stesso.
Tutta la ricerca è stata eseguita su hardware di proprietà personale in un laboratorio privato utilizzando credenziali di rete di test riservate ITU (MCC 999). Nessun accesso non autorizzato a sistemi. Nessuna rete commerciale attiva è stata interessata. Divulgazione coordinata in corso.
Questa ricerca è fornita esclusivamente per test di sicurezza autorizzati, remediation da parte del produttore e ricerca accademica. Non per accesso non autorizzato o uso dannoso.
| Campo | Valore |
|---|
| Produttore | Tozed Kangwei Tech Co., Ltd (Shenzhen, Cina) |
| Modello | Router CPE 5G ZLT X300 / X300A |
| Firmware | 6.01.3 (testato) — si ritiene che tutte le versioni del firmware siano interessate |
| Architettura | aarch64 (MediaTek MT7992) |
| Sistema Operativo | OpenWrt 23.05.5, kernel Linux 5.15.167 |
| Componente | netcwmpd (demone CWMP) |
| Distributore | du / EITC (Emirates Integrated Telecommunications), EAU |
| Data | Azione |
|---|
| 2026-08-08 | Vulnerabilità scoperta tramite analisi statica del firmware |
| 2026-08-14 | Segnalata al produttore (Tozed Kangwei) e a MITRE |
| 2026-08-14 | CVE-2026-2035703 assegnato da MITRE |
| 2026-08-22 | Il produttore (dipartimento marketing, nessun PSIRT) ha dichiarato "già corretto" — nessuna prova fornita |
| 2026-08-24–25 | Il produttore ha chiesto informazioni sulla SIM card 3 volte invece di rispondere alle domande tecniche |
| 2026-08-26 | Escalation a ZTE PSIRT ([email protected]) |
| 2026-08-27 | Il produttore ha rifiutato di interagire — "contattate il vostro rivenditore" |
| 2026-08-29 | ZTE PSIRT ha confermato: "non è un prodotto ZTE" — ha declinato la responsabilità |
| 2026-08-29 | Escalation ai CERT nazionali |
| 2026-11-14 | Divulgazione pubblica pianificata (90 giorni dalla segnalazione iniziale) |