
Tozed ZLT X300 5G CPE — Remote Root Code Execution über SDR-Rogue-Basisstation (CVE-2026-2035703, CWE-78, CVSS 9.8) — Koordinierte Offenlegung
Status: Unter koordinierter Offenlegung (90-Tage-Embargo)
Entdeckt: 2026-08-08
Forscher: Muhammad Nadeem Danish (danish1162)
CVE-ID: CVE-2026-2035703
Schweregrad: Kritisch (CVSS 9.8)
CWE: CWE-78 (OS Command Injection)
Der Tozed ZLT X300 5G CPE-Router enthält eine kritische Command-Injection-Schwachstelle, die über die Luft mittels einer Schurken-LTE-Basisstation (SDR) ausnutzbar ist. Der TR-069/CWMP-Client des Geräts (netcwmpd) übergibt unsanitisierte, netzwerkgesteuerte Eingaben an Shell-Befehle, was eine nicht authentifizierte Remote-Root-Codeausführung ermöglicht.
Ein Angreifer, der ein Software-Defined-Radio (~300 USD) in Funkreichweite betreibt, kann den TR-069-ACS-Server des Betreibers imitieren und beliebige Shell-Befehle injizieren, die als Root auf dem Zielgerät ausgeführt werden — ohne Authentifizierung, ohne Benutzerinteraktion und ohne physischen Zugriff.
SDR des Angreifers (~300 USD)
↓
Schurken-LTE-eNodeB (srsRAN, Testfrequenzband)
↓ Stärkstes Signal → X300 verbindet sich automatisch
Schurken-EPC weist IP zu (172.16.0.x)
↓
TR-069-ACS-Imitation (über DHCP Option 43)
↓
SetParameterValues: IPPingDiagnostics.Host = $(telnetd -l /bin/sh -p 4444)
↓
Gerät führt aus: ping "$(telnetd -l /bin/sh -p 4444)" als Root
↓
ROOT-SHELL auf Port 4444 — uid=0(root) gid=0(root)
Der IPPingDiagnostics-Handler in netcwmpd übergibt den Host-Parameter direkt in eine sprintf-Formatzeichenkette, die einen Shell-Befehl erstellt:
// 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 = unsanitisierter TR-069-Parameter
Der Befehl wird anschließend über system() als Root ausgeführt. Es wird keine Eingabevalidierung für den Host-Parameter durchgeführt — keine Zeichenfilterung, keine Regex-Prüfung, keine Längenvalidierung über den 512-Byte-Puffer hinaus.
Die $()-Befehlsersetzung wird innerhalb doppelter Anführungszeichen von der POSIX-Shell ausgewertet, was eine beliebige Befehlsausführung ermöglicht.
Das ZLT X300 wird von Betreibern in folgenden Regionen eingesetzt:
Naher Osten: du (VAE), STC und Mobily (Saudi-Arabien), Zain (Kuwait, Bahrain), Ooredoo und Omantel (Oman)
Europa: EE, O2, Three (Großbritannien), Telekom (Deutschland), TIM (Italien), Free Mobile, SFR, Orange (Frankreich)
Asien: Singtel (Singapur), AIS (Thailand), Smart (Philippinen), Telkomsel (Indonesien)
Afrika: MTN und Vodacom (Südafrika), MTN (Nigeria)
Jedes Gerät mit aktueller Firmware ist verwundbar.
Alle Schwachstellenentdeckungen wurden durch statische Firmware-Analyse mit IDA Pro durchgeführt — Dekompilierung von ARM-Binärdateien und Nachverfolgung von Codeausführungspfaden vom TR-069-Parametereingang über sprintf bis zu Shell-Ausführungssenken.
Alle Live-Hardware-Verifikationen und Proof-of-Concept-Tests wurden in einer privaten Laborumgebung in Pakistan auf persönlich besessenem Equipment durchgeführt, unter Verwendung einer programmierbaren Test-SIM von sysmocom (sysmoISIM-SJA5) (IMSI-Präfix 999 — von der ITU reserviertes Testnetz, kein kommerzieller Betreiber) auf einem unbelegten Frequenzband (Band 7, 2655 MHz — nicht von VAE-Betreibern genutzt). Kein kommerzielles Live-Netz wurde beeinträchtigt, keine Geräte anderer Teilnehmer waren betroffen, und es wurden keine Übertragungen auf lizenziertem kommerziellem Spektrum durchgeführt.
advisory/
TECHNICAL_REPORT.md Vollständige Schwachstellenanalyse mit IDA-Dekompilierung
VENDOR_ADVISORY.md Formatierte Herstellerbenachrichtigung
MITRE_CVE_REQUEST.md CVE-Datensatzdetails
ZTE_PSIRT_EMAIL.md Aufzeichnung der Herstellerkommunikation
netcwmpd in IDA Pro oder Ghidraprocess_ping an Adresse 0x463A14Host-Parameter von TR-069 SetParameterValues über sprintf bis zum Shell-Befehlsystem()-Aufruf existiertDer Hersteller (Tozed Kangwei) verfügt über kein Product Security Incident Response Team (PSIRT). Sämtliche Korrespondenz stammte von ihrer Global-Marketing-Abteilung. Sie behaupteten, die Schwachstelle sei "bereits behoben", konnten jedoch weder eine CVE-Nummer, eine gepatchte Firmware-Version noch ein Security Advisory vorlegen. Es existiert kein öffentlicher Nachweis einer früheren Behebung auf NVD, OpenCVE, CVE Details oder in den eigenen Veröffentlichungen des Herstellers.
Sämtliche Forschung wurde auf persönlich besessener Hardware in einem privaten Labor unter Verwendung von ITU-reservierten Testnetz-Anmeldedaten (MCC 999) durchgeführt. Kein unbefugter Zugriff auf irgendein System. Kein kommerzielles Live-Netz wurde beeinträchtigt. Koordinierte Offenlegung läuft.
Diese Forschung dient ausschließlich autorisierten Sicherheitstests, der Behebung durch Hersteller und akademischer Forschung. Nicht für unbefugten Zugriff oder böswillige Nutzung.
| Feld | Wert |
|---|
| Hersteller | Tozed Kangwei Tech Co., Ltd (Shenzhen, China) |
| Modell | ZLT X300 / X300A 5G CPE-Router |
| Firmware | 6.01.3 (getestet) — betrifft vermutlich alle Firmware-Versionen |
| Architektur | aarch64 (MediaTek MT7992) |
| Betriebssystem | OpenWrt 23.05.5, Linux-Kernel 5.15.167 |
| Komponente | netcwmpd (CWMP-Daemon) |
| Vertreiber | du / EITC (Emirates Integrated Telecommunications), VAE |
| Datum | Aktion |
|---|
| 2026-08-08 | Schwachstelle durch statische Firmware-Analyse entdeckt |
| 2026-08-14 | An Hersteller (Tozed Kangwei) und MITRE gemeldet |
| 2026-08-14 | CVE-2026-2035703 von MITRE zugewiesen |
| 2026-08-22 | Hersteller (Marketingabteilung, kein PSIRT) behauptete "bereits behoben" — keine Belege vorgelegt |
| 2026-08-24–25 | Hersteller fragte dreimal nach der SIM-Karte, statt technische Fragen zu beantworten |
| 2026-08-26 | Eskalation an ZTE PSIRT ([email protected]) |
| 2026-08-27 | Hersteller verweigerte die Zusammenarbeit — "kontaktieren Sie Ihren Händler" |
| 2026-08-29 | ZTE PSIRT bestätigte: "kein ZTE-Produkt" — Verantwortung abgelehnt |
| 2026-08-29 | Eskalation an nationale CERTs |
| 2026-11-14 | Geplante öffentliche Offenlegung (90 Tage ab Erstmeldung) |