← Todas las CVEs

CVE-2026-45750

Termix File Manager · OS Command Injection · CVSS 9.0 Crítica

Resumen

En Termix, el endpoint del File Manager encargado de resolver rutas de archivos construye un comando de shell usando un parámetro controlado por el usuario sin neutralizar correctamente la sintaxis de sustitución de comandos. Esto permite a un usuario autenticado ejecutar comandos arbitrarios en la sesión SSH activa hacia su propio servidor remoto — o, combinado con CVE-2026-45746, en la de otro usuario.

Producto afectado

Termix (Termix-SSH), versiones desde 2.1.0 hasta anteriores a 2.3.2.

La vulnerabilidad

El endpoint GET /ssh/file_manager/ssh/resolvePath recibe un parámetro path y lo usa para construir, en el backend, un comando que se ejecuta sobre la sesión SSH activa del File Manager. El valor de path se inserta dentro de comillas dobles en ese comando, con un escapado que en el código se ve así:

const escapedPath = expandPath.replace(/"/g, '\\\\"');

Esa línea solo se preocupa de que el valor recibido no "rompa" las comillas dobles del comando — pero no neutraliza la sintaxis de sustitución de comandos de la shell ($(...)). La mayoría de shells POSIX siguen interpretando $(...) como una subshell a ejecutar incluso estando dentro de comillas dobles. Con eso basta: una petición con path=x%24(id) devuelve en la respuesta la salida del comando ejecutado en el servidor remoto:

"resolvedPath":"xuid=0(root) gid=0(root) groups=0(root)"

Es decir, el propio cuerpo de la respuesta JSON filtra la salida del comando inyectado — no hace falta ni una shell inversa para confirmar la ejecución.

Impacto

Ejecución remota de comandos arbitrarios (RCE) sobre el servidor remoto asociado a la sesión SSH del File Manager, usando una funcionalidad que en teoría solo debería resolver una ruta, no ejecutar código.

Cronología

Remediación

Corregido en Termix 2.3.2, sanitizando correctamente el parámetro path antes de incorporarlo al comando ejecutado sobre la sesión SSH (en vez de solo escapar comillas dobles). Se recomienda actualizar a la versión 2.3.2 o posterior.

Referencias