Skip to main content

Langflow CVE-2026-101861

| EUVDEUVD-2026-88338 LOW
Eval Injection (CWE-95)
2026-09-28 VulnCheck
2.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to Langflow instance
  2. Delivery
    Craft component input option with malicious __repr__
  3. Exploit
    Save custom component via API
  4. Execution
    Trigger ComponentToolkit.get_tools() conversion
  5. Persist
    eval() executes payload
  6. Impact
    Code execution on server

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Eval input sanitization
MITRE ATT&CK

1 technique 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

Requires an authenticated account on the Langflow instance with the ability to create or save custom components through the API. The attacker must supply a Python object with a crafted __repr__ method into a component input options list, and code execution fires only when that component is converted into a LangChain tool via ComponentToolkit.get_tools() (including on custom-component save). Limiting factors: authentication is mandatory (PR:H per vendor), attack complexity is high (AC:H) and a specific attack requirement applies (AT:P) due to the object-crafting and interpolation path; there is no unauthenticated or default-configuration exposure. Note that in Langflow the privilege needed to reach this sink often already permits legitimate Python execution via custom components, narrowing the practical additional risk.

Impact

This is a code-injection flaw (CWE-95) via an unsafe eval() sink in Langflow's schema.py, but real-world risk is bounded by steep exploitation prerequisites and a design context that makes marginal impact small. The vendor CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:L, score 2.1) signals network reach but with high attack complexity, a specific attack requirement, and high privileges - an authenticated actor who can already save custom components. This is significant because Langflow custom components execute Python by design, so an attacker at that privilege level already has legitimate code-execution paths; the eval() bug adds an alternative sink rather than a new privilege boundary crossing, which explains the vendor's low VC/VI/VA:L ratings despite the 'RCE' tag. No EPSS score, no CISA KEV listing, and no public exploit code were provided, so there is no evidence of active or opportunistic exploitation. My independent view is that the technical impact of eval()-based execution is higher than L (I assess C/I/A:H), but the authentication and complexity gates keep this a low-to-moderate operational priority rather than an urgent patch. Note a tension worth verifying with the vendor: the description says 'authenticated attackers' and the vector uses PR:H, yet saving custom components is a common authenticated-user capability, so PR:L may be more accurate for many deployments.

Exploit ScenarioDerived

An authenticated Langflow user crafts a custom component whose input options list contains a Python object with a malicious __repr__ method, then saves it through the API. When the component is converted into a LangChain tool via ComponentToolkit.get_tools(), the option is interpolated into a Literal type string and passed to eval(), executing the attacker's payload on the server. No public exploit code was identified at time of analysis.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 28, 2026

Authenticated users of Langflow instances prior to 1.12.0 can convert crafted component input options into arbitrary Python code execution because schema.py interpolates those options into a Literal type string that is handed directly to eval() without safe-evaluation controls (CWE-95). The sink fires when an affected component is turned into a LangChain tool via ComponentToolkit.get_tools(), which also occurs during custom-component saves through the API, so an attacker must already hold a valid account able to create or save components (PR:L in the assessed CVSS 3.1 vector; PR:H in the vendor's CVSS 4.0 vector) and must satisfy the high-complexity object-crafting and interpolation path (AC:H/AT:P). No public exploit code has been identified at time of analysis and the issue is not in CISA KEV; practical marginal risk is limited because the privileges required to reach the sink typically already allow legitimate Python execution through Langflow's custom-component feature.

RemediationAI

Upgrade to Langflow 1.12.0, the vendor-released fix referenced by GHSA-33p4-w7j3-33mw and the release notes at https://github.com/langflow-ai/langflow/releases#release-v1.12.0; patching is the only remediation that removes the unsafe eval() sink in schema.py. Until upgrading, the most effective compensating control is to restrict custom-component creation and save permissions to fully trusted operators, since the vulnerability only triggers when a component with attacker-influenced input options is saved or converted into a LangChain tool via ComponentToolkit.get_tools() - the trade-off is that this blocks legitimate custom-component development workflows. As a secondary measure, disable or gate the custom-component save endpoint at the reverse proxy so that only known-good callers can reach it, accepting that this breaks API-driven component authoring; blocking or filtering component options lists that contain non-primitive objects reduces the attack surface but degrades dynamic select inputs in the UI. Note that revoking the ability to create custom components also removes a capability that already permits legitimate Python execution by design, so the operational cost is real but the residual risk of leaving the sink unpatched on an authenticated multi-tenant instance is not insignificant.

Affected VersionsENISA

langflow 0.0.94 <1.12.0
langflow 1.0.16 <1.12.0

Affected Packages

euvd langflow fix: 1.12.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-95 (improper neutralization of directives in dynamically evaluated code, commonly 'eval injection'). Langflow's schema.py builds a Python Literal type annotation from a component's selectable input options; when those options are interpolated into the generated type string and passed to eval() without a safe parser or AST validation, any evaluation side effects inherent to the interpolated objects are executed. A Python object whose __repr__ method carries attacker-supplied logic is therefore sufficient to trigger code execution during string interpolation/formatting. The reachable trigger surface is ComponentToolkit.get_tools(), which serializes and converts a component into a LangChain tool, a code path that also runs when custom components are saved through the Langflow API. Per the CPE cpe:2.3:a:langflow-ai:langflow:*:*:*:*:*:*:*:* the flaw covers the whole Langflow codebase lineage identified by the vendor, with the fix landing in the 1.12.0 release; the vendor's CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N, score 2.1) and our independent CVSS 3.1 assessment (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) agree on network reachability, high attack complexity, a specific attack prerequisite, and mandatory authentication, differing mainly on the privilege level assumed for the attacker.

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 (VulnCheck) PRIMARY 2.1 LOW
CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-reachable but requires an authenticated user (PR:L) and complex object-crafting into the eval path (AC:H); successful eval() yields full server code execution, so C/I/A:H.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Langflow 1.0.16 before 1.12.0 and 0.0.94 before 1.12.0 contain an unsafe eval() vulnerability in schema.py that allows authenticated attackers to achieve code execution by placing a Python object with a malicious __repr__ method into component input options lists. The eval() sink is triggered when a component is converted into a LangChain tool via ComponentToolkit.get_tools(), including during custom component saves through the API, by interpolating options into a Literal type string that is passed directly to eval() without safe evaluation controls.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Medium
popular open-source low-code LLM app builder, common in AI/dev environments
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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 LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
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· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

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

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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-2026-105697 CRITICAL POC
9.9 Oct 05

OS command injection in Langflow's MCP stdio transport allows an attacker who can reach the MCP server configuration end

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

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