
Fehlerhafte Validierung der Zertifikatskette in der Android-Anwendung EagleEyes Lite
EagleEyes Lite (Version 2.0.0) validiert SSL/TLS-Serverzertifikate während der HTTPS-Kommunikation nicht ordnungsgemäß.
Die Anwendung implementiert einen eigenen X509TrustManager in push.lite.avtech.com.MySSLSocketFactoryNew.checkServerTrusted(), der nur die Zertifikatsablaufzeit prüft und die vollständige Validierung der Zertifikatskette auslässt.
Dadurch können Angreifer diese Schwachstelle ausnutzen, um MITM-Angriffe mit selbstsignierten oder betrügerischen Zertifikaten durchzuführen, was zum Abfangen und Manipulieren sensibler Überwachungsdaten führt.
Über den eigenen X509TrustManager prüft die Anwendung nur das Ablaufdatum des Zertifikats und validiert nicht, ob die Zertifikatskette ordnungsgemäß vertrauenswürdig ist.
@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.");
}
}
Über den eigenen X509TrustManager prüft die Anwendung nur das Ablaufdatum des Zertifikats und validiert nicht, ob die Zertifikatskette ordnungsgemäß vertrauenswürdig ist.
Dies ermöglicht es einem MITM-Angreifer, sensible Kommunikation zwischen der Anwendung und ihrem Backend-Server einfach abzufangen oder zu verändern.
Die Anwendung sollte den eigenen X509TrustManager durch die standardmäßige Systemimplementierung ersetzen, die die vollständige Zertifikatskette validiert. Eine ordnungsgemäße Hostnamen-Überprüfung muss erzwungen werden, um die Annahme abweichender oder nicht vertrauenswürdiger Zertifikate zu verhindern.
Unsicherer Fallback-Logik für ältere Android-Versionen sollte entfernt oder durch gleichwertige Sicherheitsprüfungen ersetzt werden, um eine konsistente TLS-Validierung sicherzustellen.