Endurecer servidores mcp stdio
Un servidor de MCP que usa el transporte stdio es una línea de comandos que tu agente corre como tú. En octubre de 2026 eso dejó de ser abstracto: el CVE-2026-105740 (CVSS 9.9) de Langflow dejó que cualquier usuario con sesión registrara un servidor stdio cuyo comando iba directo a bash -c . Este post recorre el bug, el arreglo que de verdad aguanta, y una auditoría de una máquina de desarrollo…
Un servidor de MCP basado en stdio es una interfaz de línea de comandos a través de la cual un agente corre. En octubre de 2026, un fallo en Langflow permitió a cualquier usuario iniciar un servidor stdio que ejecutaba directamente el comando bash -c. Este artículo analiza el fallo, la corrección implementada y una auditoría de una máquina de desarrollo que ejecutó Claude Code, lo que resultó en una línea de comando que apuntaba a un paquete npm no existente.
Langflow permite a los usuarios autenticados definir una estructura ServerConfig que incluye el comando, los argumentos, el entorno, la URL y los encabezados. No hay listado de comandos aprobados ni lista de comandos prohibidos. Luego, el comando se ejecuta con la configuración proporcionada por el usuario, incluyendo su entorno. La petición que lista los servidores es GET /api/v2/mcp/servers?action_count=true.
Las versiones afectadas son 1.8.3 y 1.10.3 o posteriores, con parche en 1.9.0. Existen pocos intentos de explotación registrados, y el fallo es relativamente sencillo de replicar en un entorno local. El fallo se debe a que el usuario puede definir qué comandos se ejecutan, sin restricciones en cómo el string se parsea. El arreglo de servidores, REGISTRY, mapea cada ID de servidor a un argv fijo que se revisa como una dependencia con versión fija instalada antes de la ejecución.
Ningún comando se ejecuta a través de un shell, y el entorno del proceso hijo se construye a partir de una lista aprobada de variables de entorno más los valores proporcionados por el administrador. Agregar un nuevo ID de servidor requiere un cambio administrativo y un registro de auditoría.
En Langflow, las configuraciones podían persistir en los settings del proyecto, lo cual permitía que las revisiones de flujo no detectaran estos problemas. En la máquina utilizada para este post, se encontraron dos servidores stdio con fallos en diferentes scopos de npm y uno que no se encontró. Esto demuestra que, incluso sin un servidor vulnerable, el riesgo existe si un agente corría la configuración de servidor stdio sin comprobación.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.