
Divulgación técnica de CVE-2018-16987: almacenamiento en texto claro de contraseñas de servicios externos en el panel de administración de Squash TM, con puntuación CVSS 4.1 y detalles de explotación.
Esta es una vulnerabilidad de almacenamiento de texto claro de información sensible y exposición de información sensible que encontré en Squash TM durante una prueba de penetración.
Squash TM es una interfaz web utilizada para gestionar casos de prueba. Enlace al proyecto
Squash TM, al menos hasta la versión 1.18.0, presenta las contraseñas en texto claro de servicios externos en el panel de administración, como se demuestra con un campo ta-server-password en el código fuente HTML.
En el panel de administración de SquashTM, la página de servicios externos (también conocidos como servidores de automatización) contiene la contraseña en texto claro de la cuenta del servicio. Estos servicios externos podrían ser cualquier cosa, pero un ejemplo popular es un servidor Jenkins.
Aquí hay un ejemplo de URL: http://localhost:8080/squash/administration/test-automation-servers/1
Aquí hay un extracto del código fuente de la página:
<label for="ta-server-password">Password</label>
<div id="ta-server-password" class="display-table-cell" style="font-weight: bold;">cleartext_password</div>
Para que esto ocurra, también significa que las contraseñas de los servicios externos se almacenan en texto claro, lo que confirmé buscando la contraseña en la base de datos (H2 y PostgreSQL).
Además, esta vulnerabilidad se ve agravada por el hecho de que los valores predeterminados de la aplicación son:
Puntuación sugerida: 4.1 (CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N)
Solo como información para futuros investigadores, las contraseñas de los usuarios reales se almacenan como SHA1. No es ideal. Audité brevemente el código base, parece que todas las consultas SQL están correctamente construidas (sentencias preparadas). Hay algunas deserializaciones (generación de informes y función de búsqueda) a partir de entrada de usuario sin filtrar (parámetros GET) que utilizan una versión vulnerable del componente Jackson, pero no parecen explotables porque no hay manejo de tipos polimórficos.