
Tozed ZLT X300 5G CPE — Ejecución remota de código como root mediante estación base falsa SDR (CVE-2026-2035703, CWE-78, CVSS 9.8) — Divulgación coordinada
Estado: En divulgación coordinada (embargo de 90 días)
Descubierto: 2026-08-08
Investigador: Muhammad Nadeem Danish (danish1162)
ID CVE: CVE-2026-2035703
Gravedad: Crítica (CVSS 9.8)
CWE: CWE-78 (Inyección de Comandos del Sistema Operativo)
El router CPE 5G Tozed ZLT X300 contiene una vulnerabilidad crítica de inyección de comandos explotable por aire mediante una estación base LTE rogue (SDR). El cliente TR-069/CWMP del dispositivo (netcwmpd) pasa entrada no saneada controlada por la red a comandos de shell, lo que permite la ejecución remota de código como root sin autenticación.
Un atacante que opere una radio definida por software (~$300 USD) dentro del alcance de radio puede suplantar el servidor ACS TR-069 del operador e inyectar comandos de shell arbitrarios que se ejecutan como root en el dispositivo objetivo — con cero autenticación, cero interacción del usuario y cero acceso físico.
SDR del atacante (~$300)
↓
eNodeB LTE rogue (srsRAN, banda de frecuencia de prueba)
↓ Señal más fuerte → el X300 se conecta automáticamente
EPC rogue asigna IP (172.16.0.x)
↓
Suplantación de ACS TR-069 (mediante DHCP Option 43)
↓
SetParameterValues: IPPingDiagnostics.Host = $(telnetd -l /bin/sh -p 4444)
↓
El dispositivo ejecuta: ping "$(telnetd -l /bin/sh -p 4444)" como root
↓
SHELL ROOT en el puerto 4444 — uid=0(root) gid=0(root)
El manejador IPPingDiagnostics en netcwmpd pasa el parámetro Host directamente a una cadena de formato sprintf que construye un comando de shell:
// Descompilado de netcwmpd en 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 = parámetro TR-069 sin sanear
El comando se ejecuta posteriormente mediante system() como root. No se realiza ninguna validación de entrada sobre el parámetro Host — sin filtrado de caracteres, sin comprobación de expresiones regulares, sin validación de longitud más allá del búfer de 512 bytes.
La sustitución de comandos $() se evalúa dentro de comillas dobles por el shell POSIX, lo que permite la ejecución arbitraria de comandos.
El ZLT X300 está desplegado por operadores en:
Oriente Medio: du (EAU), STC y Mobily (Arabia Saudita), Zain (Kuwait, Baréin), Ooredoo y Omantel (Omán)
Europa: EE, O2, Three (Reino Unido), Telekom (Alemania), TIM (Italia), Free Mobile, SFR, Orange (Francia)
Asia: Singtel (Singapur), AIS (Tailandia), Smart (Filipinas), Telkomsel (Indonesia)
África: MTN y Vodacom (Sudáfrica), MTN (Nigeria)
Todos los dispositivos con el firmware actual son vulnerables.
Todo el descubrimiento de vulnerabilidades se realizó mediante análisis estático de firmware usando IDA Pro — descompilando binarios ARM y trazando las rutas de ejecución del código desde la entrada del parámetro TR-069 a través de sprintf hasta los sumideros de ejecución de shell.
Toda la verificación en hardware real y las pruebas de concepto se llevaron a cabo en un entorno de laboratorio privado en Pakistán, en equipos de propiedad personal, utilizando una tarjeta SIM de prueba programable sysmocom sysmoISIM-SJA5 (prefijo IMSI 999 — red de prueba reservada por la UIT, no de ningún operador comercial) en una banda de frecuencia desocupada (Banda 7, 2655 MHz — no utilizada por operadores de los EAU). No se afectó ninguna red comercial en vivo, no se involucraron dispositivos de otros suscriptores y no se realizó ninguna transmisión en espectro comercial licenciado.
advisory/
TECHNICAL_REPORT.md Análisis completo de la vulnerabilidad con descompilación IDA
VENDOR_ADVISORY.md Notificación al fabricante con formato
MITRE_CVE_REQUEST.md Detalles del registro CVE
ZTE_PSIRT_EMAIL.md Registro de la comunicación con el fabricante
netcwmpd en IDA Pro o Ghidraprocess_ping en la dirección 0x463A14Host desde SetParameterValues de TR-069 a través de sprintf hasta el comando de shellsystem()El fabricante (Tozed Kangwei) no tiene Equipo de Respuesta a Incidentes de Seguridad de Producto (PSIRT). Toda la correspondencia provino de su departamento de Marketing Global. Afirmaron que la vulnerabilidad estaba "ya corregida" pero no pudieron proporcionar un número CVE, una versión de firmware parcheada ni un aviso de seguridad. No existe registro público de ninguna corrección previa en NVD, OpenCVE, CVE Details ni en las publicaciones del propio fabricante.
Toda la investigación se realizó en hardware de propiedad personal en un laboratorio privado utilizando credenciales de red de prueba reservadas por la UIT (MCC 999). Sin acceso no autorizado a ningún sistema. No se afectó ninguna red comercial en vivo. Divulgación coordinada en curso.
Esta investigación se proporciona únicamente para pruebas de seguridad autorizadas, remediación por parte del fabricante e investigación académica. No para acceso no autorizado ni uso malicioso.
| Campo | Valor |
|---|
| Fabricante | Tozed Kangwei Tech Co., Ltd (Shenzhen, China) |
| Modelo | Router CPE 5G ZLT X300 / X300A |
| Firmware | 6.01.3 (probado) — se cree que afecta a todas las versiones de firmware |
| Arquitectura | aarch64 (MediaTek MT7992) |
| SO | OpenWrt 23.05.5, kernel Linux 5.15.167 |
| Componente | netcwmpd (demonio CWMP) |
| Distribuidor | du / EITC (Emirates Integrated Telecommunications), EAU |
| Fecha | Acción |
|---|
| 2026-08-08 | Vulnerabilidad descubierta mediante análisis estático de firmware |
| 2026-08-14 | Reportada al fabricante (Tozed Kangwei) y a MITRE |
| 2026-08-14 | CVE-2026-2035703 asignado por MITRE |
| 2026-08-22 | El fabricante (departamento de marketing, sin PSIRT) afirmó "ya corregido" — sin evidencia proporcionada |
| 2026-08-24–25 | El fabricante preguntó sobre la tarjeta SIM 3 veces en lugar de responder preguntas técnicas |
| 2026-08-26 | Escalado a ZTE PSIRT ([email protected]) |
| 2026-08-27 | El fabricante se negó a colaborar — "contacte a su vendedor" |
| 2026-08-29 | ZTE PSIRT confirmó: "no es un producto ZTE" — declinó responsabilidad |
| 2026-08-29 | Escalado a CERT nacionales |
| 2026-11-14 | Divulgación pública planificada (90 días desde el informe inicial) |