
Vérification incorrecte du nom d'hôte dans l'application Android EagleEyes Lite
EagleEyes Lite (version 2.0.0) désactive la vérification du nom d'hôte lors des communications HTTPS en utilisant SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER.
Par conséquent, l'application accepte les certificats TLS indépendamment de leur nom commun (CN) ou de leur nom alternatif du sujet (SAN), ce qui permet à un attaquant d'usurper le serveur légitime avec n'importe quel certificat valide ou auto-signé.
Un adversaire positionné sur le même réseau peut exploiter cette faiblesse pour mener une attaque de type MITM, interceptant ou modifiant ainsi les communications sensibles entre l'application et les services backend d'AVTECH.
Lorsque l'appareil exécute des versions d'Android antérieures à 8.0, ce qui signifie que SDK_API_26 est défini sur false, la méthode ne renvoie pas GetHttpsUrlResponse().
Au lieu de cela, elle exécute la logique vulnérable à l'intérieur du bloc try.
public static String GetHttpsResponse(String str) {
if (SDK_API_26) {
return GetHttpsUrlResponse(str);
}
try {
...
X509HostnameVerifier x509HostnameVerifier = SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory();
socketFactory.setHostnameVerifier(x509HostnameVerifier);
...
}
...
}
Ici, l'utilisation de SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER empêche toute vérification correcte du nom d'hôte, ce qui signifie que la connexion TLS aboutit même si le CN (nom commun) ou le SAN (nom alternatif du sujet) du certificat serveur ne correspond pas au nom d'hôte demandé.
Par conséquent, un attaquant peut usurper le serveur légitime avec un certificat forgé et lancer des attaques MITM pour intercepter ou modifier les communications sensibles.
En exécutant le script de hook Frida hook.js, la valeur de SDK_API_26 a été forcée à false afin d'émuler une version antérieure d'Android. Cela nous a permis de surveiller si la méthode GetHttpsResponse() était invoquée.
Nous avons ainsi confirmé que GetHttpsResponse() a bien été appelée pendant l'exécution.
Pour le chiffrement insuffisant des informations sensibles dans les paramètres, veuillez vous référer à CVE-2025-50110.
L'application devrait supprimer l'utilisation de SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER et appliquer une vérification stricte du nom d'hôte pour toutes les connexions HTTPS. Les champs du nom commun (CN) ou du nom alternatif du sujet (SAN) du serveur doivent être validés par rapport au nom d'hôte demandé, en utilisant HttpsURLConnection.getDefaultHostnameVerifier() ou un vérificateur strict équivalent.
De plus, toute logique de repli héritée qui désactive les vérifications du nom d'hôte pour les anciennes versions d'Android doit être supprimée ou remplacée par des implémentations sécurisées afin d'assurer une validation TLS cohérente.