
Validación incorrecta de la cadena de certificados en la aplicación Android EagleEyes Lite
EagleEyes Lite (versión 2.0.0) no valida correctamente los certificados del servidor SSL/TLS durante la comunicación HTTPS.
La aplicación implementa un X509TrustManager personalizado en push.lite.avtech.com.MySSLSocketFactoryNew.checkServerTrusted() que solo verifica la fecha de caducidad del certificado y omite la validación completa de la cadena de certificados.
Como resultado, los atacantes pueden explotar esta debilidad para llevar a cabo ataques MITM utilizando certificados autofirmados o no fiables, lo que lleva a la interceptación y manipulación de datos de vigilancia sensibles.
Mediante un X509TrustManager personalizado, la aplicación solo verifica la fecha de caducidad del certificado y no valida si la cadena de certificados es de confianza.
@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.");
}
}
Mediante un X509TrustManager personalizado, la aplicación solo verifica la fecha de caducidad del certificado y no valida si la cadena de certificados es de confianza.
Esto permite que un atacante MITM intercepte o modifique fácilmente las comunicaciones sensibles entre la aplicación y su servidor backend.
La aplicación debe reemplazar el X509TrustManager personalizado con la implementación predeterminada del sistema que valida la cadena de certificados completa. Se debe aplicar la verificación adecuada del nombre de host para evitar aceptar certificados no coincidentes o no fiables.
La lógica de respaldo insegura para versiones heredadas de Android debe eliminarse o actualizarse con comprobaciones de seguridad equivalentes para garantizar una validación TLS consistente.