
Dettagli su CVE-2018-16987 - Archiviazione in chiaro delle password dei server TA in Squash TM
Questa è una vulnerabilità di archiviazione in chiaro di informazioni sensibili e di esposizione di informazioni sensibili che ho trovato in Squash TM durante un test di penetrazione.
Squash TM è un'interfaccia web utilizzata per gestire i casi di test. Link al progetto
Squash TM fino almeno alla versione 1.18.0 presenta le password in chiaro dei servizi esterni nel pannello di amministrazione, come dimostrato da un campo ta-server-password nel codice sorgente HTML.
Nel pannello di amministrazione di SquashTM, la pagina dei servizi esterni (noti anche come server di automazione) contiene la password in chiaro dell'account del servizio. Questi servizi esterni possono essere qualsiasi cosa, ma un esempio comune è un server Jenkins.
Ecco un esempio di URL: http://localhost:8080/squash/administration/test-automation-servers/1
Ecco un estratto del codice sorgente della pagina:
<label for="ta-server-password">Password</label>
<div id="ta-server-password" class="display-table-cell" style="font-weight: bold;">cleartext_password</div>
Perché questo accada, significa anche che le password dei servizi esterni sono memorizzate in chiaro, cosa che ho confermato cercando con grep la password nel database (H2 e postgresql).
Inoltre, questa vulnerabilità è accentuata dal fatto che le impostazioni predefinite dell'applicazione sono:
Punteggio suggerito: 4.1 (CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N)
Solo come FYI per i futuri ricercatori, le password degli utenti reali sono memorizzate come SHA1. Non è l'ideale. Ho effettuato un breve audit del codebase, sembra che tutte le richieste SQL siano costruite correttamente (prepared statements). Ci sono alcune deserializzazioni (generazione di report e funzione di ricerca) da input utente non filtrati (parametri GET) che utilizzano una versione vulnerabile del componente Jackson, ma non sembrano sfruttabili perché non c'è gestione del polimorfismo dei tipi.