CVE-2026-33017

GHSA-vwmf-pq79-vjvx CRITICAL
Published March 20, 2026
CISO Take

CVE-2026-33017 is an unauthenticated RCE in Langflow affecting all versions prior to 1.9.0 — patch immediately or take the instance offline. Any internet-facing Langflow deployment running < 1.9.0 should be treated as compromised: initiate IR and audit logs for exploitation attempts. The Sysdig report confirms active exploitation within 20 hours of disclosure, making this a zero-dwell incident.

Affected Systems

Package Ecosystem Vulnerable Range Patched
langflow pip <= 1.8.1 No patch

Do you use langflow? You're affected.

Severity & Risk

CVSS 3.1
9.8 / 10
EPSS
0.5%
chance of exploitation in 30 days
KEV Status
Not in KEV
Sophistication
Advanced

Recommended Action

  1. 1. IMMEDIATE: Upgrade to Langflow 1.9.0 or later — this is the only complete fix. 2. If patching is not immediately possible, block HTTP POST requests to /api/v1/build_public_tmp/ at the WAF or network perimeter. 3. Rotate all credentials accessible by the Langflow process: LLM API keys, database credentials, cloud IAM tokens, and any secrets in environment variables. 4. Hunt for exploitation: search access logs for POST requests to /api/v1/build_public_tmp/ with a non-empty request body — any hit on an unpatched instance should trigger a full IR process. 5. Review Sysdig's published IOC report for known attacker infrastructure and C2 indicators. 6. Disable public flow features entirely if not required by business operations.

Classification

Compliance Impact

This CVE is relevant to:

EU AI Act
Article 15 - Accuracy, robustness and cybersecurity
ISO 42001
A.6.1.5 - AI system security and safety measures
NIST AI RMF
MEASURE 2.6 - AI risk measurement and monitoring
OWASP LLM Top 10
LLM07 - Insecure Plugin Design

Technical Details

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

Exploitation Scenario

An attacker identifies a public-facing Langflow instance via Shodan or Censys (Langflow exposes recognizable UI fingerprints). They craft a POST request to /api/v1/build_public_tmp/{any_valid_flow_id}/flow with a data payload containing a custom Python node whose code executes a reverse shell via subprocess.Popen — no credentials required. Within seconds they receive a shell on the Langflow server, extract all LLM API keys from environment variables, enumerate connected databases and cloud service configurations, pivot to internal AI infrastructure, and deploy a persistent backdoor. The Sysdig report documents this exact chain occurring in under 20 hours post-CVE disclosure, confirming weaponized exploit availability.

CVSS Vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Timeline

Published
March 20, 2026
Last Modified
March 24, 2026
First Seen
March 20, 2026