CVE-2026-105697: Langflow: MCP stdio command injection allows host RCE

GHSA-w794-rj3p-xv45CRITICALPoC AVAILABLE
Published October 5, 2026
CISO Take

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.

Sources:NVDGitHub AdvisoryEPSSATLASlangflow-ai/langflow GitHub releases

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?

Initial Access
Attacker reaches an exposed Langflow instance and obtains a token via the unauthenticated auto_login endpoint, or uses a low-privilege account.
AML.T0049
Malicious MCP Server Registration
Attacker adds an MCP stdio server whose command is an arbitrary OS command via POST/PATCH /api/v2/mcp/servers or the MCP Tools component.
AML.T0081
Command Execution
Langflow launches the command through bash -c on connect, running it as the Langflow process user even when the UI reports a failure.
AML.T0050
Impact
Attacker gains a reverse shell, steals LLM and cloud credentials, tampers with flows and pivots into internal systems.
AML.T0072

What systems are affected?

PackageEcosystemVulnerable RangePatched
Langflowpip>= 1.1.2, < 1.10.31.10.3
156.0KPushed 6d ago18% patched~66d to patchFull package profile →
Langflowpip>= 0.1.2, < 0.10.30.10.3
156.0KPushed 6d ago18% patched~66d to patchFull package profile →
Langflowpip< 1.10.31.10.3
156.0KPushed 6d ago18% patched~66d to patchFull package profile →

How severe is it?

CVSS 3.1
9.9 / 10
EPSS
0.9%
chance of exploitation in 30 days
Higher than 61% of all CVEs
Exploitation Status
Exploit Available
Exploitation: MEDIUM
Sophistication
Trivial
Exploitation Confidence
medium
○Public PoC indexed (trickest/cve)
Composite signal derived from CISA KEV, VulnCheck KEV, CISA SSVC, EPSS, Metasploit, Exploit-DB, trickest/cve, Nuclei templates, and inthewild.io exploitation reports.

What is the attack surface?

AVACPRUISCIA
AVNetwork
ACLow
PRLow
UINone
SChanged
CHigh
IHigh
AHigh

What should I do?

1 step
  1. 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 does CISA's SSVC say?

DecisionTrack
Exploitationnone
AutomatableNo
Technical Impacttotal

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:

EU AI Act
Art. 15-Accuracy, robustness and cybersecurity
ISO 42001
A.6.2.6-AI system operation and monitoring
NIST AI RMF
MANAGE 2.3-Response to previously unknown risks
OWASP LLM Top 10
LLM03-Supply ChainLLM06-Excessive Agency

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

agent frameworksLLM workflow orchestrationMCP tool integrationslow-code AI application builders

MITRE ATLAS Techniques

AML.T0010.005AI Agent Tool
AML.T0012Valid Accounts
AML.T0049Exploit Public-Facing Application
AML.T0050Command and Scripting Interpreter
AML.T0072Reverse Shell
AML.T0081Modify AI Agent Configuration

Compliance Controls Affected

EU AI Act: Art. 15
ISO 42001: A.6.2.6
NIST AI RMF: MANAGE 2.3
OWASP LLM Top 10: LLM03, LLM06

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-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:H

Timeline

Published
October 5, 2026
Last Modified
October 9, 2026
First Seen
October 5, 2026

Related Vulnerabilities