Resumen
El endpoint POST /database/export de Termix permite a cualquier usuario autenticado, sin importar su nivel de privilegio, descargar un export completo en SQLite que incluye la tabla de configuración global de la instancia — no solo sus propios datos. Esa tabla global guarda, entre otras cosas, los códigos y tokens temporales del flujo de reseteo de contraseña de todos los usuarios, lo que permite secuestrar cualquier cuenta, incluidas las de administrador.
Producto afectado
Termix (Termix-SSH), versiones ≤ 2.3.1. Corregido en 2.3.2.
La vulnerabilidad
Al exportar la base de datos, el backend sí filtra correctamente por userId la mayoría de las tablas — cada usuario solo debería llevarse lo suyo. El problema es que la tabla de configuración global (settings) se copia completa al archivo exportado, sin ese mismo filtro, porque en teoría es "configuración de instancia" y no datos de usuario.
El fallo es que el flujo de recuperación de contraseña guarda ahí mismo, en esa tabla global sin protección, los códigos de reseteo y tokens temporales que se generan para cualquier cuenta. Un atacante con una cuenta de bajo privilegio solo necesita:
- Exportar la base de datos vía
POST /database/export. - Extraer de ahí los códigos de reseteo de contraseña activos.
- Usar el flujo normal de recuperación (
/users/initiate-reset,/users/verify-reset-code,/users/complete-reset) con el código robado para tomar control de cualquier cuenta — incluida la de un administrador, si su código quedó expuesto en ese momento.
Impacto
Escalada de privilegios y compromiso total de cuentas ajenas a partir de un endpoint que solo requiere autenticación básica: confidencialidad, integridad y disponibilidad afectadas por completo (CVSS 8.8), ya que tomar la cuenta de un administrador abre el resto de la plataforma.
Cronología
- Identificador asignado: CVE-2026-53547 (CWE-862 Missing Authorization).
- Advisory publicado por Termix-SSH el 12 de junio de 2026 (GHSA-6r97-7wp3-2g3x).
- El registro en NVD/CVE.org sigue en estado RESERVED al momento de escribir esto, aunque el advisory con todos los detalles técnicos ya es público en GitHub.
Remediación
Corregido en Termix 2.3.2: la exportación de base de datos ya no incluye la tabla global de configuración sin filtrar, y los códigos/tokens de reseteo dejaron de almacenarse en un lugar accesible vía ese endpoint.