Description BASE:
Archivo: src/harness/process.ts:4-8, funcion applyVariablesToProcessEnv().
Carga TODAS las variables (incluyendo secretos con secret:true) en process.env.
Archivo: src/harness/mcp.ts:41-46, StdioClientTransport usa server.env.
Los subprocesos MCP heredan implicitamente process.env del padre.
Archivo: src/app/server.ts:33, se ejecuta al iniciar: processService.applyVariablesToProcessEnv(variables.variables).
Variables con secret:true (API keys, tokens) se cargan como process.env sin restriccion.
Archivo: src/app/config.ts:74-83, loadVariables() lee variables.json del disco en texto plano.
CENTRO:
Riesgo: Cualquier API key o token almacenado en variables.json se filtra a TODOS los servidores MCP configurados.
Los subprocesos MCP corren comandos arbitrarios definidos en config.json (command + args sin validar).
Si un MCP server malicioso o comprometido lee process.env, obtiene acceso a todas las credenciales.
El campo secret:true en StoredVariable (L29) no tiene efecto real — es metadata ignorada en la carga.
ACCION:
applyVariablesToProcessEnv() debe filtrar variables con secret:true — NO cargarlas en process.env.
O alternativamente: pasarlas solo a los plugins/runtimes que explicitamente las necesitan, no globalmente.
Para MCP servers que necesitan credenciales, usar server.env del MCPServerConfig en vez de heredar process.env.
Documentar que variables.json almacena secretos en texto plano y recomendar cifrado o keychain del SO.
VEREDICTO: SECURITY_RISK
Reactions are currently unavailable
You can’t perform that action at this time.
BASE:
CENTRO:
ACCION:
VEREDICTO: SECURITY_RISK