
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: Pubblicato — divulgazione coordinata tramite CISA ICS e CERT/CC
Scoperta: 2026-08-08
Ricercatore: Muhammad Nadeem Danish (danish1162)
ID CVE: CVE-2026-108576 (assegnato da VulDB CNA, pubblicato su cve.org)
Precedentemente riservato: CVE-2026-2035703 (MITRE — mai pubblicato, sostituito da CVE-2026-108576)
Gravità: Critica (CVSS 10.0)
CWE: CWE-78 (Iniezione di comandi del sistema operativo)
VulDB: VDB-416233
CERT/CC: VU#138275
GHSA: GHSA-qcpp-vfr2-v242
Il router Tozed ZLT X300 5G CPE contiene una vulnerabilità critica di iniezione di comandi sfruttabile via etere tramite una stazione base LTE illegittima (SDR). Il client TR-069/CWMP del dispositivo (netcwmpd) passa input non sanificato controllato dalla rete all'interno di comandi shell, consentendo l'esecuzione remota di codice root senza autenticazione.
Un attaccante che gestisce una radio definita via software (~300 USD) entro la portata radio può impersonare il server ACS TR-069 dell'operatore e iniettare comandi shell arbitrari che vengono eseguiti come root sul dispositivo bersaglio — senza alcuna autenticazione, senza alcuna interazione dell'utente e senza alcun accesso fisico.
Attacker's SDR (~$300)
↓
Rogue LTE eNodeB (srsRAN, test frequency band)
↓ Strongest signal → X300 auto-connects
Rogue EPC assigns IP (172.16.0.x)
↓
TR-069 ACS impersonation (via DHCP Option 43)
↓
SetParameterValues: IPPingDiagnostics.Host = $(telnetd -l /bin/sh -p 4444)
↓
Device executes: ping "$(telnetd -l /bin/sh -p 4444)" as root
↓
ROOT SHELL on port 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:
// Decompiled from netcwmpd at 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 = unsanitized TR-069 parameter
Il comando viene quindi eseguito tramite system() come root. Non viene eseguita alcuna validazione dell'input sul parametro Host — nessun filtro dei caratteri, nessun controllo regex, nessuna validazione della lunghezza oltre il buffer di 512 byte.
La sostituzione di comandi $() viene valutata all'interno delle virgolette doppie dalla shell POSIX, consentendo l'esecuzione di comandi arbitrari.
| Campo | Valore |
|---|---|
| Produttore | Tozed Kangwei Tech Co., Ltd (Shenzhen, Cina) |
| Modello | Router CPE 5G ZLT X300 / X300A |
| Firmware | 6.01.0 – 6.01.3 (tutte le versioni presumibilmente interessate) |
| Architettura | aarch64 (MediaTek MT7992) |
| Sistema operativo | OpenWrt 23.05.5, kernel Linux 5.15.167 |
| Componente | netcwmpd (daemon CWMP) |
| Distributore | du / EITC (Emirates Integrated Telecommunications), Emirati Arabi Uniti |
Lo ZLT X300 è distribuito dagli operatori in:
Medio Oriente: du (Emirati Arabi Uniti), STC e Mobily (Arabia Saudita), Zain (Kuwait, Bahrain), 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 delle vulnerabilità è stata effettuata tramite analisi statica del firmware utilizzando IDA Pro — decompilando i binari ARM e tracciando i percorsi di esecuzione del codice dall'input dei parametri TR-069 attraverso sprintf fino ai sink di esecuzione della shell.
Tutta la verifica su hardware reale e i test proof-of-concept sono stati condotti in un ambiente di laboratorio privato in Pakistan, su apparecchiature di proprietà personale, utilizzando una 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 (Band 7, 2655 MHz — non utilizzata dagli operatori degli Emirati Arabi Uniti). 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 Full vulnerability analysis with IDA decompilation
VENDOR_ADVISORY.md Formatted vendor notification
MITRE_CVE_REQUEST.md CVE record details
ZTE_PSIRT_EMAIL.md Record of vendor communication
netcwmpd in IDA Pro o Ghidraprocess_ping all'indirizzo 0x463A14Host da TR-069 SetParameterValues attraverso sprintf fino al comando shellsystem()| 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 riservata da MITRE (mai pubblicata) |
| 2026-08-22 | Il produttore (reparto marketing, nessun PSIRT) ha dichiarato "già risolto" — nessuna prova fornita |
| 2026-08-24–25 | Il produttore ha chiesto informazioni sulla scheda SIM 3 volte invece di rispondere alle domande tecniche |
| 2026-08-26 | Escalation al PSIRT di ZTE ([email protected]) |
| 2026-08-27 | Il produttore ha rifiutato di collaborare — "contatta il tuo venditore" |
| 2026-08-29 | Il PSIRT di ZTE ha confermato: "non è un prodotto ZTE" — responsabilità declinata |
| 2026-08-29 | Escalation ai CERT nazionali |
| 2026-09-10 | CERT/CC ha attivato il caso VINCE VU#138275 |
| 2026-09-18 | CISA ICS coinvolta — redazione dell'advisory |
| 2026-10-10 | CVE-2026-108576 assegnata dal CNA VulDB, pubblicata su cve.org |
Il produttore (Tozed Kangwei) non dispone di un Product Security Incident Response Team (PSIRT). Tutta la corrispondenza è pervenuta dal loro reparto Global Marketing. Hanno dichiarato che la vulnerabilità era "già risolta" ma non sono stati in grado di fornire un numero CVE, una versione firmware corretta 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.