CVE-2026-18894: Langflow: public flow triggers stored Python code RCE
CRITICALIBM Langflow OSS 1.0.0 through 1.12.4 lets an unauthenticated remote attacker trigger Python component code already stored in a public workflow, and that code runs inside the server process with the flow owner's runtime context. This breaks the intended boundary that public execution paths only run server-trusted components. The CVSS score is a moderate 6.5 (C:L/I:L, no privileges or user interaction required). However, any internet-exposed Langflow instance with public flows is exposed, and server-process execution can reach the flow owner's API keys, model credentials and connected data stores. There is no KEV listing, public exploit, Nuclei template or EPSS score yet, so exploitation is unconfirmed, but the low attack complexity makes it likely to attract attention. Upgrade to the fixed release in IBM's advisory (above 1.12.4), and until then, disable public sharing of flows and audit which flows are public and what custom Python components they contain.
What is the risk?
Medium by CVSS (6.5), but real-world risk depends on exposure. Exploitation needs only network access to a public flow, with low complexity, no privileges and no user interaction. The attacker cannot supply arbitrary code; they trigger code already stored in the flow, which limits impact to what that code does and what the runtime context can reach. Code runs in the server process, so effective impact can be higher than the C:L/I:L score suggests if flows hold secrets or powerful tools. No KEV, public exploit, Nuclei template or EPSS data is available (confidence: MEDIUM, based on the NVD description and IBM advisory only).
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Langflow | pip | — | No patch |
Do you use Langflow? You're affected.
How severe is it?
What is the attack surface?
What should I do?
6 stepsUpgrade Langflow OSS to the fixed version listed in IBM's advisory (https://www.ibm.com/support/pages/node/7293016).
Until patched, disable or unpublish public flows and restrict the Langflow endpoint to trusted networks or behind an authenticating reverse proxy.
Inventory flows with custom Python components, especially public ones, and review the code for side effects, network calls and secret access.
Run Langflow with least-privilege credentials, a restricted network egress policy and scoped, rotatable API keys.
Detect by monitoring unauthenticated requests to public flow run endpoints, unexpected outbound connections from the Langflow process, and anomalous LLM or vector DB API usage.
Rotate secrets available to the flow owner if suspicious execution is found.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-18894?
IBM Langflow OSS 1.0.0 through 1.12.4 lets an unauthenticated remote attacker trigger Python component code already stored in a public workflow, and that code runs inside the server process with the flow owner's runtime context. This breaks the intended boundary that public execution paths only run server-trusted components. The CVSS score is a moderate 6.5 (C:L/I:L, no privileges or user interaction required). However, any internet-exposed Langflow instance with public flows is exposed, and server-process execution can reach the flow owner's API keys, model credentials and connected data stores. There is no KEV listing, public exploit, Nuclei template or EPSS score yet, so exploitation is unconfirmed, but the low attack complexity makes it likely to attract attention. Upgrade to the fixed release in IBM's advisory (above 1.12.4), and until then, disable public sharing of flows and audit which flows are public and what custom Python components they contain.
Is CVE-2026-18894 actively exploited?
No confirmed active exploitation of CVE-2026-18894 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-18894?
1. Upgrade Langflow OSS to the fixed version listed in IBM's advisory (https://www.ibm.com/support/pages/node/7293016). 2. Until patched, disable or unpublish public flows and restrict the Langflow endpoint to trusted networks or behind an authenticating reverse proxy. 3. Inventory flows with custom Python components, especially public ones, and review the code for side effects, network calls and secret access. 4. Run Langflow with least-privilege credentials, a restricted network egress policy and scoped, rotatable API keys. 5. Detect by monitoring unauthenticated requests to public flow run endpoints, unexpected outbound connections from the Langflow process, and anomalous LLM or vector DB API usage. 6. Rotate secrets available to the flow owner if suspicious execution is found.
What systems are affected by CVE-2026-18894?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, RAG pipelines, LLM workflow orchestration, low-code AI app builders.
What is the CVSS score for CVE-2026-18894?
CVE-2026-18894 has a CVSS v3.1 base score of 9.8 (CRITICAL). The EPSS exploitation probability is 0.49%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0049Exploit Public-Facing ApplicationAML.T0050Command and Scripting InterpreterAML.T0053AI Agent Tool InvocationCompliance Controls Affected
What are the technical details?
Original Advisory
IBM Langflow OSS 1.0.0 through 1.12.4 could allow a remote attacker to trigger pre-existing stored Python component code in a public workflow, executing it under the flow owner's runtime context within the server process. This bypasses the intended trust boundary where public execution paths are restricted to server-trusted component code.
Exploitation Scenario
An organization publishes a Langflow workflow as a public chatbot, and the flow includes a custom Python component that calls internal services using the owner's API keys. An attacker discovers the exposed Langflow instance through internet scanning, identifies the public flow, and sends crafted requests to its public execution endpoint that cause the stored Python component to run in the server process. The component runs with the flow owner's context, letting the attacker trigger actions such as querying connected data stores, consuming paid LLM quota or leaking data through the component's outputs. Combined with a permissive component, this can become a foothold for lateral movement from the Langflow host.
Weaknesses (CWE)
CWE-94Improper Control of Generation of Code ('Code Injection')PrimaryCWE-94Improper Control of Generation of Code ('Code Injection')CWE-94 — Improper Control of Generation of Code ('Code Injection'): The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.
- [Architecture and Design] Refactor your program so that you do not have to dynamically generate code.
- [Architecture and Design] Run your code in a "jail" or similar sandbox environment that enforces strict boundaries between the process and the operating system. This may effectively restrict which code can be executed by your product. Examples include the Unix chroot jail and AppArmor. In general, managed code may provide some protection. This may not be a feasible solution, and it only limits the impact to the operating system; the rest of your application may still be subject to compromise. Be careful to avoid CWE-243 and other weaknesses related to jails.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HReferences
Timeline
Related Vulnerabilities
CVE-2026-1056110.0Langflow: auth bypass + unauthenticated RCE (CVSS 10)
Same package: langflowCVE-2026-1013410.0Langflow: unauthenticated RCE via tool_code injection
Same package: langflowCVE-2026-333099.9langflow: Path Traversal enables file access
Same package: langflowCVE-2026-552559.9Langflow: IDOR allows cross-user flow execution
Same package: langflowCVE-2026-78739.9Langflow: authenticated RCE enables credential theft
Same package: langflow