CVE-2026-105697: Langflow: MCP stdio command injection allows host RCE
GHSA-w794-rj3p-xv45CRITICALPoC AVAILABLELangflow's MCP server settings let any user who can reach them register a "server" whose command is an arbitrary OS command, and Langflow runs it on the host as the Langflow process user as soon as it tries to connect. With the default LANGFLOW_AUTO_LOGIN=true, an auto_login endpoint hands out a token without credentials, so an exposed default instance is reachable without an account; with it disabled, any authenticated non-admin user can exploit it. The CVSS is 9.9 with scope change, and Langflow has 194 other tracked CVEs, which points to a recurring pattern of code-execution flaws. Current exploitation signals are modest: EPSS is 0.004 (68th percentile), it is not in CISA KEV, and no public exploit or Nuclei template exists. Exploitation is trivial, so that picture can change quickly. Upgrade to Langflow 1.10.3 (langflow-base 0.10.3, lfx 1.10.3) now. Until then, disable AUTO_LOGIN and keep instances off the internet.
What is the risk?
High to critical. Exploitation needs only low privileges (none on default AUTO_LOGIN deployments), has low complexity, and requires no user interaction. The scope change reflects that code runs on the host outside Langflow's authorization boundary, giving high confidentiality, integrity and availability impact. Exploitation signals today are low (EPSS 0.00396, not in KEV, no public PoC or scanner template), which gives a short window for patching before weaponization. Risk is highest for internet-exposed instances running development defaults and for shared multi-user instances where non-admin users can edit MCP settings or build flows.
How does the attack unfold?
What systems are affected?
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade to langflow 1.10.3, langflow-base 0.10.3 and lfx 1.10.3. 2) Set LANGFLOW_AUTO_LOGIN=false on every non-development instance and confirm /api/v1/auto_login no longer issues tokens. 3) Do not expose Langflow directly to the internet; put it behind a VPN or an authenticating reverse proxy. 4) Restrict who can access MCP server settings and flow building, and block POST/PATCH to /api/v2/mcp/servers/* at the proxy if it is not needed. 5) Run Langflow as a low-privilege user in a container with a read-only filesystem and restricted egress. 6) Detection: audit MCP server configurations for unexpected command/args values, review access logs for requests to /api/v2/mcp/servers and /api/v1/auto_login, and alert on shell or child processes spawned by the Langflow process (bash -c, curl, nc, touch, rm). 7) If an exposed instance ran a vulnerable version, rotate all secrets and API keys it held and hunt for persistence.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-105697?
Langflow's MCP server settings let any user who can reach them register a "server" whose command is an arbitrary OS command, and Langflow runs it on the host as the Langflow process user as soon as it tries to connect. With the default LANGFLOW_AUTO_LOGIN=true, an auto_login endpoint hands out a token without credentials, so an exposed default instance is reachable without an account; with it disabled, any authenticated non-admin user can exploit it. The CVSS is 9.9 with scope change, and Langflow has 194 other tracked CVEs, which points to a recurring pattern of code-execution flaws. Current exploitation signals are modest: EPSS is 0.004 (68th percentile), it is not in CISA KEV, and no public exploit or Nuclei template exists. Exploitation is trivial, so that picture can change quickly. Upgrade to Langflow 1.10.3 (langflow-base 0.10.3, lfx 1.10.3) now. Until then, disable AUTO_LOGIN and keep instances off the internet.
Is CVE-2026-105697 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-105697, increasing the risk of exploitation.
How to fix CVE-2026-105697?
1) Upgrade to langflow 1.10.3, langflow-base 0.10.3 and lfx 1.10.3. 2) Set LANGFLOW_AUTO_LOGIN=false on every non-development instance and confirm /api/v1/auto_login no longer issues tokens. 3) Do not expose Langflow directly to the internet; put it behind a VPN or an authenticating reverse proxy. 4) Restrict who can access MCP server settings and flow building, and block POST/PATCH to /api/v2/mcp/servers/* at the proxy if it is not needed. 5) Run Langflow as a low-privilege user in a container with a read-only filesystem and restricted egress. 6) Detection: audit MCP server configurations for unexpected command/args values, review access logs for requests to /api/v2/mcp/servers and /api/v1/auto_login, and alert on shell or child processes spawned by the Langflow process (bash -c, curl, nc, touch, rm). 7) If an exposed instance ran a vulnerable version, rotate all secrets and API keys it held and hunt for persistence.
What systems are affected by CVE-2026-105697?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, LLM workflow orchestration, MCP tool integrations, low-code AI application builders.
What is the CVSS score for CVE-2026-105697?
CVE-2026-105697 has a CVSS v3.1 base score of 9.9 (CRITICAL). The EPSS exploitation probability is 0.95%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0010.005AI Agent ToolAML.T0012Valid AccountsAML.T0049Exploit Public-Facing ApplicationAML.T0050Command and Scripting InterpreterAML.T0072Reverse ShellAML.T0081Modify AI Agent ConfigurationCompliance Controls Affected
What are the technical details?
Original Advisory
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.
Exploitation Scenario
An attacker finds an internet-exposed Langflow instance running the default configuration. They request /api/v1/auto_login to obtain a token without credentials, then send a POST to /api/v2/mcp/servers/ to add an MCP server whose stdio command is a reverse shell. Langflow runs it on the host when it lists servers or loads tools, even though the UI reports a start failure. The attacker now has a shell as the Langflow user. They harvest LLM API keys, database and cloud credentials from the environment, modify flows to maintain access, and pivot into the internal network.
Weaknesses (CWE)
CWE-78Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')PrimaryCWE-78Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')PrimaryCWE-78Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')CWE-78 — Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection'): The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.
- [Architecture and Design] If at all possible, use library calls rather than external processes to recreate the desired functionality.
- [Architecture and Design, Operation] Run the code in a "jail" or similar sandbox environment that enforces strict boundaries between the process and the operating system. This may effectively restrict which files can be accessed in a particular directory or which commands can be executed by the software. OS-level examples include the Unix chroot jail, AppArmor, and SELinux. In general, managed code may provide some protection. For example, java.io.FilePermission in the Java SecurityManager allows the software to specify restrictions on file operations. This may not be a feasible solution, and it only limits the impact to the operating system; the rest of the 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:L/UI:N/S:C/C:H/I:H/A:HReferences
- github.com/langflow-ai/langflow/security/advisories/GHSA-7w94-79vh-5mr2x_refsource_MISC
- ox.security/blog/mcp-supply-chain-advisory-rce-vulnerabilities-across-the-ai-ecosystemx_refsource_MISC
- ox.security/blog/the-mother-of-all-ai-supply-chains-critical-systemic-vulnerability-at-the-core-of-the-mcpx_refsource_MISC
- github.com/advisories/GHSA-w794-rj3p-xv45
- nvd.nist.gov/vuln/detail/CVE-2026-105697
- github.com/langflow-ai/langflow/commit/eba285edf1dd4a33bf23a9cb8113c991fcdf3d1d
- github.com/langflow-ai/langflow/commit/efbc4a16e639409d938a4883463d27ef0bc637a0
- github.com/langflow-ai/langflow/pull/12290
- github.com/langflow-ai/langflow/pull/14036
- github.com/langflow-ai/langflow/releases/tag/v1.10.3
- github.com/langflow-ai/langflow/security/advisories/GHSA-w794-rj3p-xv45
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