Descripción de la Vulnerabilidad

Se ha identificado una vulnerabilidad crítica de inyección de opciones en el paquete @aiondadotcom/mcp-ssh que permite ejecución remota de código (RCE) local. La falla se produce cuando un argumento hostAlias malicioso como -oProxyCommand=... se pasa a comandos ssh/scp sin un terminador de argumentos adecuado.

Mecanismo de Explotación

SSH interpreta argumentos que comienzan con - como opciones independientemente de su posición, causando que la inyección de opciones ejecute el ProxyCommand suministrado por el atacante localmente en la máquina que ejecuta el servidor MCP, antes de cualquier conexión de red. Esto evita la protección documentada de anotaciones # @password: y expone claves SSH locales, cookies del navegador y otras credenciales.

En Windows existe un segundo vector de RCE local: el uso de spawn(..., { shell: true }) permite que metacaracteres de shell (&, |, ^, >, ", ;) en parámetros como hostAlias, command, localPath o remotePath sean interpretados por cmd.exe, triggering ejecución arbitraria de comandos locales.

Impacto y Alcance

El servidor MCP ejecuta localmente sobre STDIO, pero el LLM que lo controla no es confiable. Los argumentos de herramientas pueden ser manipulados mediante prompt injection desde cualquier texto no confiable que el LLM ingiera (páginas web, correos electrónicos, archivos de repositorio). El ataque no requiere un usuario malicioso, solo que el LLM procese texto controlado por el atacante durante la sesión. La vulnerabilidad fue corregida en la versión 1.3.5.