
Details zu CVE-2018-16987 - Klartext-Speicherung der Passwörter von TA-Servern in Squash TM
Dies ist eine Schwachstelle in Bezug auf die Klartextspeicherung vertraulicher Informationen und die Offenlegung vertraulicher Informationen, die ich während eines Penetrationstests in Squash TM gefunden habe.
Squash TM ist eine Weboberfläche zur Verwaltung von Testfällen. Link zum Projekt
Squash TM bis mindestens Version 1.18.0 zeigt die Klartext-Passwörter externer Dienste im Administrationsbereich an, wie am Feld ta-server-password im HTML-Quelltext zu sehen ist.
Im Administrationsbereich von SquashTM enthält die Seite für externe Dienste (auch Automatisierungsserver genannt) das Klartext-Passwort des Dienstkontos. Diese externen Dienste können alles Mögliche sein, ein gängiges Beispiel ist jedoch ein Jenkins-Server.
Hier eine Beispiel-URL: http://localhost:8080/squash/administration/test-automation-servers/1
Hier ein Auszug aus dem Quelltext der Seite:
<label for="ta-server-password">Passwort</label>
<div id="ta-server-password" class="display-table-cell" style="font-weight: bold;">klartext_passwort</div>
Damit dies geschehen kann, müssen die Passwörter externer Dienste zudem im Klartext gespeichert werden, was ich durch eine Suche nach dem Passwort in der Datenbank (H2 und PostgreSQL) bestätigt habe.
Diese Schwachstelle wird zudem durch die Standardeinstellungen der Anwendung verstärkt:
Vorgeschlagene Bewertung: 4.1 (CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N)
Nur als Hinweis für zukünftige Forscher: Die Passwörter tatsächlicher Benutzer werden als SHA1 gespeichert. Nicht ideal. Ich habe den Code kurz überprüft, alle SQL-Anfragen scheinen korrekt erstellt zu sein (vorbereitete Anweisungen). Es gibt einige Deserialisierungen (Berichtserstellung und Suchfunktion) aus ungefilterten Benutzereingaben (GET-Parameter) unter Verwendung einer anfälligen Version der Jackson-Komponente, aber diese scheinen nicht ausnutzbar zu sein, da keine polymorphe Typbehandlung erfolgt.