
PoC und Erkennungsleitfaden für die kritische nicht authentifizierte RCE in IBM Langflow OSS, einschließlich des auto_login-Token-Bypasses und der unsicheren Python-Auswertung über /validate/code.
Kritische Schwachstelle für nicht authentifizierte Remotecodeausführung, die IBM Langflow OSS betrifft.
Die Schwachstelle ergibt sich aus der Verkettung zweier Schwachstellen:
/api/v1/auto_login kann einem nicht authentifizierten Netzwerkaufrufer ein privilegiertes SUPERUSER-Bearer-Token ausstellen./api/v1/validate/code verarbeitet angreiferkontrollierten Python-Code in einem unsicheren Ausführungskontext.In Verkettung können diese Schwachstellen zur Ausführung von beliebigem Python-Code mit den Berechtigungen des Langflow-Backend-Prozesses führen.
Die Schwachstelle hat einen CVSS-v3.1-Score von 9.8 (Kritisch) und wird als CWE-94 — Improper Control of Generation of Code eingestuft.
| Produkt | Verwundbare Versionen | Korrigierte Version |
|---|---|---|
| IBM Langflow OSS | 1.0.0 – 1.10.0 | 1.10.1 |
IBM empfiehlt ein Upgrade auf Langflow OSS 1.10.1.
CVSS: 9.8 Kritisch
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated attacker
|
v
/api/v1/auto_login
|
| SUPERUSER bearer token
v
/api/v1/validate/code
|
| Unsafe Python evaluation
v
Remote Code Execution
|
v
Langflow backend process
Der Kern des Sicherheitsproblems ist nicht allein, dass einer dieser Endpunkte existiert. Die Auswirkung ergibt sich aus der Kombination einer Primitive zur Authentifizierungsumgehung/Token-Ausstellung mit einem unsicheren Code-Validierungsmechanismus.
Eine erfolgreiche Ausnutzung kann einem Angreifer die Ausführung von Code im Sicherheitskontext des Langflow-Backends ermöglichen.
Je nach Bereitstellung können dadurch folgende Ressourcen offengelegt werden:
Die praktische Auswirkung hängt daher stark von den Berechtigungen und dem Netzwerkzugriff ab, die dem Langflow-Prozess zur Verfügung stehen.
Die folgenden Anfragen dienen der zerstörungsfreien Identifizierung und enthalten kein Payload zur Codeausführung.
GET / HTTP/1.1
Host: TARGET
Accept: */*
Connection: close
GET /docs HTTP/1.1
Host: TARGET
Accept: text/html,*/*
Connection: close
GET /api/v1/auto_login HTTP/1.1
Host: TARGET
Accept: application/json
Connection: close
Notieren Sie für defensive Tests den Statuscode, die Header und die Antwortstruktur, anstatt zu versuchen, zurückgegebenes Anmeldedatenmaterial zu verwenden.
Ein nützliches defensives Telemetriemuster ist:
/api/v1/auto_login
followed shortly by
/api/v1/validate/code
Eine Quelle, die diese Anfragen ohne den üblichen Langflow-Frontend-Datenverkehr stellt, ist besonders untersuchenswert.
Testen Sie die Schwachstelle in einer Produktionsinstanz nicht, indem Sie beliebigen Python-Code an /api/v1/validate/code übermitteln.
Ein sicherer Validierungsablauf ist:
1. Identify the Langflow version
2. Confirm whether it is <= 1.10.0
3. Review access logs for the affected endpoints
4. Check for unexpected SUPERUSER token issuance
5. Check process/application logs for suspicious Python execution
6. Upgrade to 1.10.1
7. Rotate potentially exposed credentials
8. Investigate the host if exploitation is suspected
Achten Sie auf:
POST /api/v1/validate/code
GET /api/v1/auto_login
POST /api/v1/auto_login
Besonders verdächtiges Verhalten umfasst:
/api/v1/auto_login200 OK-Antworten, die ein access_token enthaltenauto_login-Anfrage, auf die unmittelbar eine Anfrage an /api/v1/validate/code folgtAktualisieren Sie Langflow OSS auf:
1.10.1 or later
IBM empfiehlt ausdrücklich ein Upgrade auf 1.10.1.
Wenn eine Ausnutzung vermutet wird, sollte das Patchen allein nicht als ausreichend angesehen werden. Prüfen Sie Protokolle und Host-Telemetrie und rotieren Sie Geheimnisse, auf die der Langflow-Prozess möglicherweise Zugriff hatte.
CISA hat CVE-2026-9198 am 4. August 2026 in seinen Katalog bekannter ausgenutzter Schwachstellen (Known Exploited Vulnerabilities Catalog) aufgenommen.
Dieses Repository ist für autorisierte Sicherheitsforschung, Schwachstellenanalyse, Detektionsentwicklung und kontrollierte Laborumgebungen bestimmt.
| Metrik | Wert |
|---|
| Angriffsvektor | Netzwerk |
| Angriffskomplexität | Niedrig |
| Erforderliche Berechtigungen | Keine |
| Benutzerinteraktion | Keine |
| Vertraulichkeit | Hoch |
| Integrität | Hoch |
| Verfügbarkeit | Hoch |
| Scope | Unverändert |