Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain token via default auto_login endpoint
-
DeliveryAdd MCP server with arbitrary OS command
-
ExploitLangflow attempts stdio connection and spawns command
-
ExecutionExecute arbitrary commands as Langflow user
-
ImpactFull host compromise / lateral movement
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the ability to reach the MCP server settings - Settings → MCP Servers → Add MCP Server, i.e. POST/PATCH /api/v2/mcp/servers/{server_name} - or to build a flow using the MCP Tools component, because there was no allowlist on the stdio command/args (and before 1.10.3 commands were wrapped in bash -c "exec ..."). The command executes automatically whenever Langflow attempts to connect to the configured server (listing servers, loading tools, or running the flow). The key access condition is the configuration mode: with the DEFAULT LANGFLOW_AUTO_LOGIN=true, GET /api/v1/auto_login returns a token with no credentials, so on an exposed default instance no account is needed. Limiting factors: if AUTO_LOGIN is disabled (documented as the production-recommended setting), any authenticated non-admin user is still sufficient (no admin role required), and the attacker must have network reachability to the Langflow API; successful code execution runs with the privileges of the Langflow process user. Fixed by the command allowlist/validation in 1.10.3. |
| Impact | This is a genuine high-priority vulnerability, not a high-CVSS-but-low-real-risk case. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, score 9.9) describes network-reachable, low-complexity OS command execution with scope change and full confidentiality/integrity/availability impact - consistent with the CWE-78 command-injection root cause confirmed by the GitHub advisory GHSA-w794-rj3p-xv45 and the fix commits/PRs. The most important signal is a configuration nuance the base CVSS vector understates: the vector lists PR:L (authenticated), but the description states that with the DEFAULT LANGFLOW_AUTO_LOGIN=true, GET /api/v1/auto_login issues a token with no credentials, so an internet-exposed default instance is effectively exploitable with PR:N (unauthenticated). With AUTO_LOGIN disabled, any authenticated non-admin user suffices. No EPSS score, KEV listing, or public POC was provided in the input, so there is no evidence of active exploitation or weaponized exploit code at this time; the available 'source code evidence' is the vendor fix (allowlist/validation) rather than an attack POC. Net: treat as urgent patching priority given trivial exploitation against default configs, while noting that real-world exploitation prevalence is currently unverified (no EPSS/KEV supplied). |
| Exploit ScenarioDerived | An attacker reaches an internet-exposed Langflow instance running the default LANGFLOW_AUTO_LOGIN=true, calls GET /api/v1/auto_login to obtain a token without credentials, then POSTs to /api/v2/mcp/servers/{server_name} an MCP 'server' whose command is an arbitrary OS command (e.g., a reverse shell or rm -rf). As soon as Langflow tries to connect to that server - listing servers, loading tools, or running the flow - the command executes on the host as the Langflow process user, even if the UI reports that the stdio server failed to start. No public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
OS command injection in Langflow's MCP stdio transport allows an attacker who can reach the MCP server configuration endpoint (POST/PATCH /api/v2/mcp/servers/{server_name}) or add an MCP Tools component to a flow to execute arbitrary operating-system commands on the Langflow host, running with the privileges of the Langflow process user. The vulnerability affects Langflow before 1.10.3, langflow-base before 0.10.3, and lfx before 1.10.3, and is reachable without any account on an exposed instance left in its default LANGFLOW_AUTO_LOGIN=true configuration because GET /api/v1/auto_login issues a token without credentials; when AUTO_LOGIN is disabled, any authenticated non-admin user is sufficient (CVSS vector PR:L), so no administrative role is required. The command fires automatically as soon as Langflow tries to connect to the configured server (listing servers, loading tools, or running a flow), and the resulting execution is not confined to the Langflow process security context per the S:C scope metric. No public exploit code was identified at time of analysis, and vendor-released fixes are available in Langflow 1.10.3, langflow-base 0.10.3, and lfx 1.10.3.
RemediationAI
Upgrade to the fixed releases: Langflow 1.10.3, langflow-base 0.10.3, and lfx 1.10.3 (vendor release tag https://github.com/langflow-ai/langflow/releases/tag/v1.10.3; advisory https://github.com/langflow-ai/langflow/security/advisories/GHSA-w794-rj3p-xv45). These versions introduce the MCP stdio command allowlist and centralized validate_mcp_stdio_config gate, implemented in commits eba285edf1dd4a33bf23a9cb8113c991fcdf3d1d and efbc4a16e639409d938a4883463d27ef0bc637a0 via pull requests 12290 and 14036; if you cannot upgrade immediately, apply the same validation logic from lfx.base.mcp.security in any wrapper or fork that still accepts raw MCP server commands. Until patched, the single highest-value compensating control is to set LANGFLOW_AUTO_LOGIN=false and configure real authentication, which removes the unauthenticated default-configuration path (GET /api/v1/auto_login no longer hands out a token) but does not eliminate the vulnerability, since any authenticated non-admin user can still inject a command through the MCP server settings or an MCP Tools flow; the trade-off is that disabling AUTO_LOGIN breaks the zero-setup local development experience and any automation relying on the auto-login token. Restrict network reachability to the Langflow API as a second control (bind to loopback or an internal interface, gate behind a reverse proxy with authentication, or firewall the port) at the cost of losing remote access for legitimate users. Additionally, run Langflow as a dedicated low-privilege, non-root user in a container with no host filesystem mounts or privileged capabilities, which does not fix the flaw but confines any injected command to the Langflow service account and limits lateral movement; be aware this can break components that need broader filesystem or Docker access.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Langflow's MCP (Model Context Protocol) stdio transport works by spawning a local subprocess from a user-supplied command and args pair and speaking JSON-RPC over its stdin/stdout. In affected versions, the MCPServerConfig Pydantic model in src/backend/base/langflow/api/v2/schemas.py accepted any command string, and prior to 1.10.3 that string was additionally wrapped in bash -c "exec {command} ...", so shell metacharacters plus an arbitrary binary path could both be abused. This is a textbook CWE-78 OS Command Injection: untrusted configuration input is passed to the process launcher without an allowlist or sanitization, and execution is triggered by ordinary backend activity rather than an explicit 'run' action, which is why the attempt still executes even when the UI reports that the stdio server failed to start. The fix moves validation out of the API schema module into a shared module, lfx.base.mcp.security, re-exporting ALLOWED_MCP_COMMANDS (node, python, python3, npx, uvx, docker, cmd, sh, bash), DANGEROUS_SHELL_CHARS, DANGEROUS_KEYWORDS, SHELL_WRAPPERS, SHELL_EXEC_FLAGS, and DOCKER_DANGEROUS_ARGS, and exposing a single validate_mcp_stdio_config entry point used both by the API and by execution-time gates. That architectural change matters because an allowlist enforced only at the REST layer can be bypassed by other configuration paths, such as flow components or persisted server records. CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H (9.9) reflects network reachability, no user interaction, low privileges required in the general case, and a changed scope because the injected command runs as the Langflow process user rather than within the attacker's own security context, with high confidentiality, integrity, and availability impact on the host. The lfx library is the shared execution package that downstream Langflow releases and standalone consumers import, which is why the advisory covers langflow-base and lfx versions in addition to the main Langflow product.
Know when Langflow gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Network API reachable (AV:N), no special conditions (AC:L); PR:L because non-default config needs a low-priv account though default auto_login lowers this toward PR:N; OS execution beyond the app yields S:C and C/I/A:H.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
Langflow is a tool for building and deploying AI-powered agents and workflows. Before Langflow 1.10.3, the MCP stdio transport launched whatever command / args a user put in an MCP server configuration, with no allowlist and (before 1.10.3) wrapped in bash -c "exec {command} ...". Any user able to reach the MCP server settings ("Settings → MCP Servers → Add MCP Server", POST/PATCH /api/v2/mcp/servers/{server_name}) or to build a flow with the MCP Tools component could add a "server" whose command is an arbitrary OS command (touch, rm -rf, a reverse shell, ...). The command runs on the Langflow host as the Langflow process user as soon as Langflow tries to connect to the server (listing servers, loading tools, running the flow) - even when the UI then reports that the stdio server failed to start. With the default LANGFLOW_AUTO_LOGIN=true, GET /api/v1/auto_login hands out a token without credentials, so on an exposed instance running the default configuration this is reachable without an account. AUTO_LOGIN is documented as a development-only setting; with it disabled, any authenticated (non-admin) user can exploit it. This issue is fixed in Langflow 1.10.3, langflow-base 0.10.3, and lfx 1.10.3.
Blast Radius
ecosystem impact- 1 pypi packages depend on lfx (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 1.10.3.
Technical POC Analysis
CWE-78: OS command injection in the MCP stdio client startup path.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 public PoC link from github
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
Langflow deployments - including the langflow-base and lfx packages - are exposed to a critical operating-system command injection flaw (CVSS 9.9) that allows an attacker to execute arbitrary commands on the Langflow host with the privileges of the service account. Instances left in the default LANGFLOW_AUTO_LOGIN=true configuration can be reached without any credentials, meaning any internet- or network-exposed deployment is a direct path to full host compromise. Leadership should treat unpatched, externally reachable Langflow instances as an immediate enterprise risk requiring containment before feature work continues.
No vendor-released patch identified at time of analysis. Interim mitigations: set LANGFLOW_AUTO_LOGIN=false to stop unauthenticated token issuance; restrict network access to Langflow and its MCP configuration endpoints (POST/PATCH /api/v2/mcp/servers/{server_name}) to trusted administrative networks only; remove or block untrusted MCP server definitions and MCP Tools components; enforce authenticated, non-admin-restricted flow editing (CVSS vector PR:L indicates any authenticated non-admin user is sufficient when auto-login is disabled); run Langflow as a dedicated low-privilege user in a segregated container or host with least-privilege filesystem and outbound network filtering; and monitor for anomalous child processes and egress from Langflow hosts. Per the source advisory, affected versions are those before Langflow 1.10.3, langflow-base 0.10.3, and lfx 1.10.3; no public exploit identified at time of analysis.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Langflow before 1.3.0 allows unauthenticated remote code injection through the /api/v1/validate/code endpoint, enabling
Langflow has a third RCE vulnerability via exec_globals (EPSS 10.0%) allowing inclusion of untrusted code that executes
Account takeover and remote code execution in Langflow AI workflow platform versions ≤1.6.9 due to a CORS misconfigurati
Langflow has a code injection vulnerability in the code component (EPSS 2.6%) enabling remote code execution through the
Langflow has an eval injection in eval_custom_component_code (EPSS 2.0%) enabling remote code execution through crafted
Code injection in Langflow CSV Agent node before 1.8.0. The node hardcodes allow_dangerous_code=True, enabling arbitrary
Langflow through 0.6.19 allows remote code execution if untrusted users are able to reach the "POST /api/v1/custom_compo
langflow <=1.0.18 is vulnerable to Remote Code Execution (RCE) as any component provided the code functionality and the
langflow v1.0.12 was discovered to contain a remote code execution (RCE) vulnerability via the PythonCodeTool component.
Langflow before 1.7.0.dev45 exposes multiple API endpoints without authentication, allowing unauthenticated access to us
An unauthenticated shell injection vulnerability exists in Langflow's GitHub Actions CI/CD workflows, allowing attackers
Arbitrary file write vulnerability in an API endpoint (POST /api/v2/files) enables authenticated remote attackers to ove
EUVD-2026-92788
GHSA-w794-rj3p-xv45
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB