Cyber Posture

CVE-2026-33017

CriticalCISA KEVActive ExploitationPublic PoC

Published: 20 March 2026

Published
20 March 2026
Modified
26 March 2026
KEV Added
25 March 2026
Patch
CVSS Score 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
EPSS Score 0.4124 97.4th percentile
Risk Priority 64 60% EPSS · 20% KEV · 20% CVSS

Description

Langflow is a tool for building and deploying AI-powered agents and workflows. In versions prior to 1.9.0, the POST /api/v1/build_public_tmp/{flow_id}/flow endpoint allows building public flows without requiring authentication. When the optional data parameter is supplied, the endpoint uses attacker-controlled flow…

more

data (containing arbitrary Python code in node definitions) instead of the stored flow data from the database. This code is passed to exec() with zero sandboxing, resulting in unauthenticated remote code execution. This is distinct from CVE-2025-3248, which fixed /api/v1/validate/code by adding authentication. The build_public_tmp endpoint is designed to be unauthenticated (for public flows) but incorrectly accepts attacker-supplied flow data containing arbitrary executable code. This issue has been fixed in version 1.9.0.

Mitigating Controls (NIST 800-53 r5)AI

prevent

Requires timely remediation of the specific flaw in Langflow versions prior to 1.9.0 by patching to version 1.9.0, eliminating the unauthenticated RCE via exec() of attacker-supplied flow data.

prevent

Validates the format and content of the attacker-controlled 'data' parameter in flow node definitions to block arbitrary Python code injection prior to execution via exec().

prevent

Explicitly authorizes and limits unauthenticated actions on the public /api/v1/build_public_tmp/{flow_id}/flow endpoint to prevent processing and executing untrusted flow data.

Security SummaryAI

CVE-2026-33017 is a critical vulnerability in Langflow, a tool for building and deploying AI-powered agents and workflows, affecting versions prior to 1.9.0. The issue lies in the POST /api/v1/build_public_tmp/{flow_id}/flow endpoint, which is designed to allow unauthenticated building of public flows. When the optional "data" parameter is supplied, the endpoint processes attacker-controlled flow data—containing arbitrary Python code in node definitions—instead of the stored database flow data. This code is executed via exec() with no sandboxing, enabling unauthenticated remote code execution. The vulnerability is classified under CWE-94, CWE-95, and CWE-306, with a CVSS v3.1 base score of 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).

Any unauthenticated attacker with network access can exploit this vulnerability by sending a crafted POST request to the endpoint, specifying a flow_id and a malicious "data" payload embedding executable Python code within flow node definitions. No user interaction is required, and exploitation complexity is low. Successful attacks result in full remote code execution on the server, allowing attackers to achieve high-impact compromise of confidentiality, integrity, and availability, such as data theft, persistence, or further lateral movement.

The vulnerability has been fixed in Langflow version 1.9.0, as detailed in GitHub Security Advisories GHSA-rvqx-wpfh-mfx7 and GHSA-vwmf-pq79-vjvx, the fix commit 73b6612e3ef25fdae0a752d75b0fabd47328d4f0, and related release notes. Security practitioners should upgrade to version 1.9.0 or later and review configurations for exposed public flow endpoints. This issue is distinct from CVE-2025-3248, which addressed authentication on a different endpoint, and was identified through code review, as described in a Medium post by the discoverer.

Details

CWE(s)
KEV Date Added
25 March 2026

Affected Products

langflow
langflow
≤ 1.8.2

AI Security AnalysisAI

AI Category
Other AI Platforms
Risk Domain
N/A
OWASP Top 10 for LLMs 2025
None mapped
MITRE ATLAS Techniques
None mapped
Classification Reason
Matched keywords: ai

MITRE ATT&CK Enterprise TechniquesAI

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1059.006 Python Execution
Adversaries may abuse Python commands and scripts for execution.
Why these techniques?

CVE-2026-33017 enables unauthenticated RCE in a public-facing web application (T1190) by executing arbitrary attacker-supplied Python code via exec() (T1059.006).

Confidence: HIGH · MITRE ATT&CK Enterprise v19.0

References