CVE-2026-9201: Langflow: truncated-hash bypass enables RCE
HIGHLangflow's optional hardening mode is meant to restrict custom component execution to a trusted-template allowlist, but it validates code integrity using only a truncated SHA-256 hash, and an authenticated low-privilege user can craft malicious Python component code that collides with that partial hash to slip past the check and execute arbitrary code inside the Langflow process. This isn't a cosmetic flaw — it defeats the specific control organizations enable to prevent unauthorized code execution in a framework used to build production LLM agents and pipelines, and the CVSS 8.8 score (network vector, low complexity, no user interaction, full C/I/A impact) reflects that once bypassed, compromise is complete. It's not in CISA KEV, has no public exploit or Nuclei template, and CISA's SSVC decision is TRACK — the lowest urgency tier — while EPSS sits at a low 0.23% raw probability, so there is no evidence of active or imminent exploitation. The authenticated-access prerequisite narrows the blast radius somewhat, but hardening mode exists precisely to contain lower-trust users (contractors, internal teams with limited access), so this removes the safety net for the population it was built to constrain. Track IBM's advisory for a fixed release beyond 1.10.3, and until patched, treat hardening mode as unreliable: restrict who can author or import custom components, review component code manually, and monitor for unexpected Python execution or process spawning from the Langflow service.
What is the risk?
High severity (CVSS 8.8) driven by full confidentiality/integrity/availability impact once exploited, network attack vector, low complexity, and no user interaction required. The mitigating factor is the PR:L requirement — exploitation needs an already-authenticated, low-privileged account, which caps this below a pre-auth RCE. Real-world exploitation likelihood currently appears low: no CISA KEV listing, no public exploit code, no scanner template, EPSS raw score of 0.23%, and CISA SSVC rates it TRACK (lowest priority tier, monitor-only). The core risk driver is that this vulnerability specifically defeats a security control (hardening mode) rather than exploiting an unprotected surface — organizations that enabled hardening mode believing it capped their exposure to trusted code are the ones most exposed by this finding.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Langflow | pip | — | No patch |
Do you use Langflow? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step-
Upgrade Langflow to a fixed release above 1.10.3 as soon as IBM publishes one (track https://www.ibm.com/support/pages/node/7282646 for the patched version). Until patched, do not treat hardening mode as a sufficient control on its own: restrict which authenticated users can create or import custom components, require manual code review/approval for new components regardless of hash validation status, and apply least-privilege to all Langflow accounts. Detection: monitor the Langflow process for unexpected child processes, outbound network connections, or filesystem writes originating from component execution; audit logs for component uploads/edits by low-privileged accounts; and alert on any Python execution paths not tied to known, approved templates.
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-9201?
Langflow's optional hardening mode is meant to restrict custom component execution to a trusted-template allowlist, but it validates code integrity using only a truncated SHA-256 hash, and an authenticated low-privilege user can craft malicious Python component code that collides with that partial hash to slip past the check and execute arbitrary code inside the Langflow process. This isn't a cosmetic flaw — it defeats the specific control organizations enable to prevent unauthorized code execution in a framework used to build production LLM agents and pipelines, and the CVSS 8.8 score (network vector, low complexity, no user interaction, full C/I/A impact) reflects that once bypassed, compromise is complete. It's not in CISA KEV, has no public exploit or Nuclei template, and CISA's SSVC decision is TRACK — the lowest urgency tier — while EPSS sits at a low 0.23% raw probability, so there is no evidence of active or imminent exploitation. The authenticated-access prerequisite narrows the blast radius somewhat, but hardening mode exists precisely to contain lower-trust users (contractors, internal teams with limited access), so this removes the safety net for the population it was built to constrain. Track IBM's advisory for a fixed release beyond 1.10.3, and until patched, treat hardening mode as unreliable: restrict who can author or import custom components, review component code manually, and monitor for unexpected Python execution or process spawning from the Langflow service.
Is CVE-2026-9201 actively exploited?
No confirmed active exploitation of CVE-2026-9201 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-9201?
Upgrade Langflow to a fixed release above 1.10.3 as soon as IBM publishes one (track https://www.ibm.com/support/pages/node/7282646 for the patched version). Until patched, do not treat hardening mode as a sufficient control on its own: restrict which authenticated users can create or import custom components, require manual code review/approval for new components regardless of hash validation status, and apply least-privilege to all Langflow accounts. Detection: monitor the Langflow process for unexpected child processes, outbound network connections, or filesystem writes originating from component execution; audit logs for component uploads/edits by low-privileged accounts; and alert on any Python execution paths not tied to known, approved templates.
What systems are affected by CVE-2026-9201?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, LLM workflow orchestration, low-code/no-code AI builders, plugin/custom-component execution.
What is the CVSS score for CVE-2026-9201?
CVE-2026-9201 has a CVSS v3.1 base score of 8.8 (HIGH). The EPSS exploitation probability is 0.23%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012 Valid Accounts AML.T0050 Command and Scripting Interpreter AML.T0107 Exploitation for Defense Evasion Compliance Controls Affected
What are the technical details?
Original Advisory
IBM Langflow OSS 1.0.0 through 1.10.3 could allow an authenticated attacker to execute arbitrary code due to a cryptographic weakness in the custom component validation mechanism. When the optional hardening mode that restricts execution to trusted component templates is enabled, the application validates component code using a truncated SHA‑256 hash. Because the hash comparison relies on only a portion of the digest, an attacker can craft malicious component code that collides with a trusted template hash and bypasses validation. Successful exploitation allows the attacker to introduce and execute unauthorized Python code within the Langflow process, defeating the intended security control and potentially leading to full compromise of the affected instance.
Exploitation Scenario
An attacker obtains a low-privileged authenticated account on a Langflow instance — for example a contractor, a compromised internal user, or a limited-scope collaborator account on a shared AI-builder platform. With hardening mode enabled, the attacker crafts custom component Python code engineered to produce a truncated SHA-256 digest matching that of a trusted template hash, exploiting the fact that only a portion of the digest is compared. The manipulated component passes validation as if it were a vetted, trusted template and is loaded and executed by the Langflow engine. The attacker's code now runs with the privileges of the Langflow process itself, giving them access to any credentials, API keys, or connected services the instance manages, and a foothold for lateral movement or data exfiltration.
Weaknesses (CWE)
CWE-326 — Inadequate Encryption Strength: The product stores or transmits sensitive data using an encryption scheme that is theoretically sound, but is not strong enough for the level of protection required.
- [Architecture and Design] Use an encryption scheme that is currently considered to be strong by experts in the field.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H References
Timeline
Related Vulnerabilities
CVE-2026-10561 10.0 Langflow: auth bypass + unauthenticated RCE (CVSS 10)
Same package: langflow CVE-2026-10134 10.0 Langflow: unauthenticated RCE via tool_code injection
Same package: langflow CVE-2026-33309 9.9 langflow: Path Traversal enables file access
Same package: langflow CVE-2026-55255 9.9 Langflow: IDOR allows cross-user flow execution
Same package: langflow CVE-2026-7873 9.9 Langflow: authenticated RCE enables credential theft
Same package: langflow