
Trasmissione in chiaro di informazioni sensibili nell'applicazione Android EagleEyes Lite
Nell'applicazione EagleEyes Lite (versione 2.0.0), il metodo GetHttpsResponse() trasmette informazioni sensibili come ID account, password, token dei dispositivi e URL interni del server direttamente nella query string di una richiesta HTTPS.
Poiché queste credenziali e questi token sono incorporati nell'URL anziché essere collocati in modo sicuro nel corpo della richiesta, possono essere facilmente estratti da qualsiasi avversario che esegua un attacco MITM.
Anche se la connessione utilizza nominalmente HTTPS, l'esposizione di parametri così sensibili in chiaro all'interno dell'URL aumenta significativamente il rischio di perdita delle credenziali e di accesso non autorizzato ai sistemi CCTV AVTECH.
Questa debolezza compromette la riservatezza dei dati degli utenti e rende l'applicazione particolarmente vulnerabile quando opera su reti non affidabili.
Quando il dispositivo esegue versioni di Android precedenti alla 8.0, ovvero quando SDK_API_26 è impostato su false, il metodo non restituisce GetHttpsUrlResponse().
Esegue invece la logica vulnerabile all'interno del blocco try.
public static String GetHttpsResponse(String str) {
if (SDK_API_26) {
return GetHttpsUrlResponse(str);
}
try {
...
HttpResponse execute = new DefaultHttpClient(
new SingleClientConnManager(defaultHttpClient.getParams(), schemeRegistry),
defaultHttpClient.getParams()
).execute(new HttpPost(str));
...
}
...
}
Qui, il parametro str contiene l'URL completo della richiesta, che incorpora informazioni sensibili come account_id e password direttamente nella query string.
Di conseguenza, le credenziali degli utenti sono esposte in chiaro all'interno dell'URL, rendendole suscettibili di perdita se intercettate tramite un attacco MITM o registrate da sistemi intermedi.
Eseguendo lo script di hooking Frida hook.js, abbiamo confermato che il metodo GetHttpsResponse() veniva invocato e che l'URL della richiesta generata conteneva informazioni sensibili (come account_id e password) in chiaro.
Per un'analisi dettagliata dell'implementazione vulnerabile di GetHttpsResponse(), fare riferimento a CVE-2025-46408.
L'applicazione non dovrebbe mai includere informazioni sensibili come ID account, password o token di autenticazione nei parametri della query string dell'URL.
Le credenziali devono invece essere trasmesse in modo sicuro all'interno del corpo della richiesta HTTPS utilizzando parametri POST. Ciò impedisce che i valori sensibili vengano esposti in URL, log o sistemi intermedi.