Skip to main content

Langflow CVE-2026-105697

| EUVDEUVD-2026-92788 CRITICAL
OS Command Injection (CWE-78)
2026-10-05 security-advisories@github.com GHSA-w794-rj3p-xv45
9.9
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain token via default auto_login endpoint
  2. Delivery
    Add MCP server with arbitrary OS command
  3. Exploit
    Langflow attempts stdio connection and spawns command
  4. Execution
    Execute arbitrary commands as Langflow user
  5. Impact
    Full 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
1 public PoC Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

langflow-base 0.1.2, < 0.10.3
langflow 1.1.2, < 1.10.3
lfx < 1.10.3

Affected Packages

pypi langflow fix: 1.10.3
pypi langflow-base fix: 0.10.3
pypi lfx fix: 1.10.3

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

Vendor (github) PRIMARY 9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.9 CRITICAL

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 05, 2026 - 22:02 EUVD
CVE Published
Oct 05, 2026 - 21:16 cve.org
CRITICAL 9.9

DescriptionCVE.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.

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

Why It Matters

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.

Business Impact: Severe
Compensating Controls

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

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Medium
popular open-source AI agent/workflow builder, common but not ubiquitous infrastructure
Threat Intel
1
1 source
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

70
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +50
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

CVE-2025-3248 CRITICAL POC
9.8 Apr 07

Langflow before 1.3.0 allows unauthenticated remote code injection through the /api/v1/validate/code endpoint, enabling

CVE-2026-0770 CRITICAL POC
9.8 Jan 23

Langflow has a third RCE vulnerability via exec_globals (EPSS 10.0%) allowing inclusion of untrusted code that executes

CVE-2025-34291 CRITICAL POC
9.4 Dec 05

Account takeover and remote code execution in Langflow AI workflow platform versions ≤1.6.9 due to a CORS misconfigurati

CVE-2026-0768 CRITICAL POC
9.8 Jan 23

Langflow has a code injection vulnerability in the code component (EPSS 2.6%) enabling remote code execution through the

CVE-2026-0769 CRITICAL POC
9.8 Jan 23

Langflow has an eval injection in eval_custom_component_code (EPSS 2.0%) enabling remote code execution through crafted

CVE-2026-27966 CRITICAL POC
9.8 Feb 26

Code injection in Langflow CSV Agent node before 1.8.0. The node hardcodes allow_dangerous_code=True, enabling arbitrary

CVE-2024-37014 CRITICAL POC
9.8 Jun 10

Langflow through 0.6.19 allows remote code execution if untrusted users are able to reach the "POST /api/v1/custom_compo

CVE-2024-48061 CRITICAL POC
9.8 Nov 04

langflow <=1.0.18 is vulnerable to Remote Code Execution (RCE) as any component provided the code functionality and the

CVE-2024-42835 CRITICAL POC
9.8 Oct 31

langflow v1.0.12 was discovered to contain a remote code execution (RCE) vulnerability via the PythonCodeTool component.

CVE-2026-21445 CRITICAL POC
9.1 Jan 02

Langflow before 1.7.0.dev45 exposes multiple API endpoints without authentication, allowing unauthenticated access to us

CVE-2026-33475 CRITICAL POC
9.1 Mar 24

An unauthenticated shell injection vulnerability exists in Langflow's GitHub Actions CI/CD workflows, allowing attackers

CVE-2026-5027 HIGH POC
8.8 Mar 27

Arbitrary file write vulnerability in an API endpoint (POST /api/v2/files) enables authenticated remote attackers to ove

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy