
Validation incorrecte de la chaîne de certificats dans l'application Android EagleEyes Lite
EagleEyes Lite (version 2.0.0) ne parvient pas à valider correctement les certificats serveur SSL/TLS lors des communications HTTPS.
L'application implémente un X509TrustManager personnalisé dans push.lite.avtech.com.MySSLSocketFactoryNew.checkServerTrusted() qui ne vérifie que la date d'expiration du certificat et omet la validation complète de la chaîne de certificats.
Par conséquent, les attaquants peuvent exploiter cette faiblesse pour mener des attaques MITM en utilisant des certificats auto-signés ou frauduleux, entraînant l'interception et la manipulation de données de surveillance sensibles.
Via un X509TrustManager personnalisé, l'application ne vérifie que la date d'expiration du certificat et ne valide pas si la chaîne de certificats est correctement approuvée.
@Override // javax.net.ssl.X509TrustManager
public void checkServerTrusted(X509Certificate[] x509CertificateArr, String str) throws CertificateException {
try {
x509CertificateArr[0].checkValidity();
} catch (Exception unused) {
throw new CertificateException("Certificate not valid or trusted.");
}
}
Via un X509TrustManager personnalisé, l'application ne vérifie que la date d'expiration du certificat et ne valide pas si la chaîne de certificats est correctement approuvée.
Cela permet à un attaquant MITM d'intercepter ou de modifier facilement les communications sensibles entre l'application et son serveur backend.
L'application devrait remplacer le X509TrustManager personnalisé par l'implémentation système par défaut qui valide la chaîne de certificats complète. Une vérification correcte du nom d'hôte doit être appliquée pour empêcher l'acceptation de certificats non concordants ou non approuvés.
La logique de repli non sécurisée pour les anciennes versions d'Android devrait être supprimée ou mise à jour avec des contrôles de sécurité équivalents pour garantir une validation TLS cohérente.