
Tozed ZLT X300 5G CPE — удаленное выполнение кода с правами root через SDR-имитацию базовой станции (CVE-2026-2035703, CWE-78, CVSS 9.8) — скоординированное раскрытие
Статус: Опубликовано — скоординированное раскрытие через CISA ICS и CERT/CC
Обнаружено: 2026-08-08
Исследователь: Muhammad Nadeem Danish (danish1162)
CVE ID: CVE-2026-108576 (назначен CNA VulDB, опубликован на cve.org)
Ранее зарезервирован: CVE-2026-2035703 (MITRE — так и не опубликован, заменён на CVE-2026-108576)
Критичность: Критическая (CVSS 10.0)
CWE: CWE-78 (внедрение команд ОС)
VulDB: VDB-416233
CERT/CC: VU#138275
GHSA: GHSA-qcpp-vfr2-v242
Маршрутизатор Tozed ZLT X300 5G CPE содержит критическую уязвимость внедрения команд, эксплуатируемую по радиоэфиру через поддельную базовую станцию LTE (SDR). Клиент TR-069/CWMP устройства (netcwmpd) передаёт несанитизированные данные, контролируемые сетью, в команды оболочки, что позволяет неаутентифицированное удалённое выполнение кода с правами root.
Злоумышленник, использующий программно-определяемое радио (около 300 долларов США) в пределах радиуса действия, может выдать себя за сервер TR-069 ACS оператора и внедрить произвольные команды оболочки, выполняемые с правами root на целевом устройстве — без какой-либо аутентификации, без взаимодействия с пользователем и без физического доступа.
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)
Обработчик IPPingDiagnostics в netcwmpd передаёт параметр Host напрямую в строку формата sprintf, которая формирует команду оболочки:
// 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
Затем команда выполняется через system() с правами root. Для параметра Host не выполняется никакая проверка входных данных — ни фильтрация символов, ни проверка регулярным выражением, ни проверка длины сверх буфера в 512 байт.
Подстановка команд $() вычисляется внутри двойных кавычек оболочкой POSIX, что позволяет выполнить произвольную команду.
| Поле | Значение |
|---|---|
| Производитель | Tozed Kangwei Tech Co., Ltd (Шэньчжэнь, Китай) |
| Модель | ZLT X300 / X300A 5G CPE Router |
| Прошивка | 6.01.0 – 6.01.3 (предположительно затронуты все версии) |
| Архитектура | aarch64 (MediaTek MT7992) |
| ОС | OpenWrt 23.05.5, ядро Linux 5.15.167 |
| Компонент | netcwmpd (демон CWMP) |
| Дистрибьютор | du / EITC (Emirates Integrated Telecommunications), ОАЭ |
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 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 в IDA Pro или Ghidraprocess_ping по адресу 0x463A14Host от TR-069 SetParameterValues через sprintf в shell-командуsystem() отсутствует какая-либо очистка входных данных| Дата | Действие |
|---|---|
| 2026-08-08 | Уязвимость обнаружена в ходе статического анализа прошивки |
| 2026-08-14 | Сообщено производителю (Tozed Kangwei) и MITRE |
| 2026-08-14 | CVE-2026-2035703 зарезервирован MITRE (так и не опубликован) |
| 2026-08-22 | Производитель (отдел маркетинга, без PSIRT) заявил, что уязвимость «уже исправлена» — доказательств не предоставлено |
| 2026-08-24–25 | Производитель трижды спрашивал о SIM-карте вместо ответов на технические вопросы |
| 2026-08-26 | Эскалировано в ZTE PSIRT ([email protected]) |
| 2026-08-27 | Производитель отказался от взаимодействия — «обращайтесь к продавцу» |
| 2026-08-29 | ZTE PSIRT подтвердил: «не продукт ZTE» — снял с себя ответственность |
| 2026-08-29 | Эскалировано в национальные CERT |
| 2026-09-10 | CERT/CC активировал дело VINCE VU#138275 |
| 2026-09-18 | Подключён CISA ICS — готовится бюллетень |
| 2026-10-10 | CVE-2026-108576 присвоен CNA VulDB, опубликован на cve.org |
У производителя (Tozed Kangwei) нет команды реагирования на инциденты безопасности продуктов (PSIRT). Вся переписка велась их отделом глобального маркетинга. Они утверждали, что уязвимость «уже исправлена», но не смогли предоставить номер CVE, версию прошивки с исправлением или бюллетень безопасности. Публичных свидетельств какого-либо предыдущего исправления нет ни в NVD, ни в OpenCVE, ни в CVE Details, ни в собственных публикациях производителя.