Riesgo RCE con Execute Command en n8n
Por qué el nodo Execute Command otorga control total del servidor y requiere precaución extrema
¿Qué es este problema?
El nodo Execute Command ejecuta comandos de shell directamente en el servidor n8n. Esto es intencionalmente poderoso pero extremadamente peligroso si el comando incluye cualquier entrada controlada por el usuario, ya que habilita Ejecución Remota de Código (RCE).
Patrones de uso de alto riesgo:
•Comandos incluyendo entrada de usuario desde webhooks•Construcción dinámica de comandos con concatenación de strings•Ejecución de scripts con argumentos proporcionados por usuario•Comandos de shell con rutas de archivo sin sanitizar
¿Por qué es peligroso?
Acceso total al servidor
El comando se ejecuta con los permisos del usuario de n8n, típicamente accediendo a todos los archivos y recursos de red.
Inyección de comandos
La entrada sin sanitizar permite a los atacantes inyectar comandos adicionales usando ; || && o backticks.
Exfiltración de datos
Los atacantes pueden leer cualquier archivo, volcar bases de datos o enviar datos a servidores externos.
Persistencia
Los atacantes pueden crear backdoors, modificar crontabs o instalar malware.
Cómo solucionarlo
- 1
Evitar entrada de usuario en comandos
Nunca incluyas datos controlados por usuario en nodos Execute Command. Usa enfoques alternativos.
- 2
Sanitizar rigurosamente
Si la entrada de usuario es inevitable, valida contra listas estrictas de permitidos y escapa caracteres de shell.
- 3
Usar nodos específicos en su lugar
Prefiere nodos dedicados (SSH, FTP, S3) sobre comandos de shell cuando sea posible.
- 4
Restringir permisos
Ejecuta n8n con permisos mínimos de usuario para limitar el daño si es comprometido.
Escanea tu workflow ahora
Sube tu archivo JSON de n8n y detecta nodos Execute Command que puedan tener riesgos de seguridad.