
Tozed ZLT X300 5G CPE — удаленное выполнение кода с правами root через SDR-имитацию базовой станции (CVE-2026-2035703, CWE-78, CVSS 9.8) — скоординированное раскрытие
Статус: Координированное раскрытие (90-дневный эмбарго)
Обнаружено: 2026-08-08
Исследователь: Muhammad Nadeem Danish (danish1162)
ID CVE: CVE-2026-2035703
Критичность: Критическая (CVSS 9.8)
CWE: CWE-78 (внедрение команд ОС)
Маршрутизатор Tozed ZLT X300 5G CPE содержит критическую уязвимость внедрения команд, эксплуатируемую по воздуху через поддельную базовую станцию LTE (SDR). Клиент TR-069/CWMP устройства (netcwmpd) передаёт несанитизированные управляемые сетью входные данные в shell-команды, что позволяет неаутентифицированное удаленное выполнение кода с правами root.
Злоумышленник, использующий программно-определяемое радио (~$300 USD) в пределах радиуса действия, может выдать себя за сервер ACS оператора TR-069 и внедрить произвольные shell-команды, выполняемые с правами root на целевом устройстве — без аутентификации, без взаимодействия с пользователем и без физического доступа.
SDR злоумышленника (~$300)
↓
Поддельная LTE eNodeB (srsRAN, тестовая полоса частот)
↓ Самый сильный сигнал → X300 автоматически подключается
Поддельный EPC назначает IP (172.16.0.x)
↓
Имитация TR-069 ACS (через DHCP Option 43)
↓
SetParameterValues: IPPingDiagnostics.Host = $(telnetd -l /bin/sh -p 4444)
↓
Устройство выполняет: ping "$(telnetd -l /bin/sh -p 4444)" с правами root
↓
ROOT-ОБОЛОЧКА на порту 4444 — uid=0(root) gid=0(root)
Обработчик IPPingDiagnostics в netcwmpd передаёт параметр Host непосредственно в строку формата sprintf, которая формирует shell-команду:
// Декомпилировано из netcwmpd по адресу 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 = несанитизированный параметр TR-069
Затем команда выполняется через system() с правами root. Никакой проверки входных данных параметра Host не выполняется — ни фильтрации символов, ни проверки регулярными выражениями, ни проверки длины помимо 512-байтового буфера.
Подстановка команд $() вычисляется внутри двойных кавычек POSIX-оболочкой, что обеспечивает выполнение произвольных команд.
ZLT X300 развёрнут операторами по всему миру:
Ближний Восток: du (ОАЭ), STC и Mobily (Саудовская Аравия), Zain (Кувейт, Бахрейн), Ooredoo и Omantel (Оман)
Европа: EE, O2, Three (Великобритания), Telekom (Германия), TIM (Италия), Free Mobile, SFR, Orange (Франция)
Азия: Singtel (Сингапур), AIS (Таиланд), Smart (Филиппины), Telkomsel (Индонезия)
Африка: MTN и Vodacom (ЮАР), MTN (Нигерия)
Каждое устройство на текущей прошивке уязвимо.
Все обнаружение уязвимостей выполнялось посредством статического анализа прошивки с использованием IDA Pro — декомпиляция ARM-бинарных файлов и трассировка путей выполнения кода от ввода параметра TR-069 через sprintf до точек выполнения shell-команд.
Вся проверка на живом оборудовании и тестирование proof-of-concept проводились в частной лабораторной среде в Пакистане, на личном оборудовании, с использованием программируемой тестовой SIM-карты sysmocom sysmoISIM-SJA5 (префикс IMSI 999 — зарезервированная ITU тестовая сеть, не коммерческий оператор) на незанятой полосе частот (Band 7, 2655 МГц — не используется операторами ОАЭ). Ни одна коммерческая сеть не была затронута, устройства других абонентов не использовались, и никакие передачи не выполнялись в лицензированном коммерческом спектре.
advisory/
TECHNICAL_REPORT.md Полный анализ уязвимости с декомпиляцией IDA
VENDOR_ADVISORY.md Форматированное уведомление производителя
MITRE_CVE_REQUEST.md Детали записи CVE
ZTE_PSIRT_EMAIL.md Запись переписки с производителем
netcwmpd в IDA Pro или Ghidraprocess_ping по адресу 0x463A14Host от TR-069 SetParameterValues через sprintf до shell-командыsystem()У производителя (Tozed Kangwei) отсутствует группа реагирования на инциденты безопасности продукта (PSIRT). Вся переписка велась через их отдел глобального маркетинга. Они заявили, что уязвимость «уже исправлена», но не смогли предоставить номер CVE, версию исправленной прошивки или бюллетень безопасности. Никаких публичных записей о предыдущем исправлении не существует в NVD, OpenCVE, CVE Details или публикациях самого производителя.
Все исследования проводились на личном оборудовании в частной лаборатории с использованием зарезервированных ITU тестовых сетевых учётных данных (MCC 999). Без несанкционированного доступа к каким-либо системам. Ни одна коммерческая сеть не была затронута. Проводится координированное раскрытие.
Данное исследование предоставляется только для авторизованного тестирования безопасности, устранения уязвимостей производителем и академических исследований. Не для несанкционированного доступа или злонамеренного использования.
| Поле | Значение |
|---|
| Производитель | Tozed Kangwei Tech Co., Ltd (Шэньчжэнь, Китай) |
| Модель | ZLT X300 / X300A 5G CPE Router |
| Прошивка | 6.01.3 (протестировано) — предположительно затрагивает все версии прошивки |
| Архитектура | aarch64 (MediaTek MT7992) |
| ОС | OpenWrt 23.05.5, ядро Linux 5.15.167 |
| Компонент | netcwmpd (демон CWMP) |
| Дистрибьютор | du / EITC (Emirates Integrated Telecommunications), ОАЭ |
| Дата | Действие |
|---|
| 2026-08-08 | Уязвимость обнаружена посредством статического анализа прошивки |
| 2026-08-14 | Сообщено производителю (Tozed Kangwei) и MITRE |
| 2026-08-14 | CVE-2026-2035703 присвоен MITRE |
| 2026-08-22 | Производитель (отдел маркетинга, без PSIRT) заявил «уже исправлено» — доказательств не предоставлено |
| 2026-08-24–25 | Производитель 3 раза спрашивал о SIM-карте вместо ответов на технические вопросы |
| 2026-08-26 | Эскалация в ZTE PSIRT ([email protected]) |
| 2026-08-27 | Производитель отказался от взаимодействия — «обратитесь к своему продавцу» |
| 2026-08-29 | ZTE PSIRT подтвердил: «не продукт ZTE» — отказался от ответственности |
| 2026-08-29 | Эскалация в национальные CERT |
| 2026-11-14 | Планируемое публичное раскрытие (90 дней с момента первоначального отчёта) |