20h

Advisory to Exploit

145K

GitHub Stars

1

HTTP Request

0

Auth Required

The Story

On March 17, 2026, Langflow published an advisory for CVE-2026-33017, a critical unauthenticated RCE in the POST /api/v1/build_public_tmp/{flow_id}/flow endpoint. The endpoint is designed to let unauthenticated users build public flows. The vulnerability exists because when the optional data parameter is supplied, the endpoint accepts attacker-controlled flow data containing arbitrary Python code in node definitions and passes it directly to exec() with zero sandboxing.

Within 20 hours of the advisory going live, Sysdig's Threat Research Team observed the first exploitation attempts in the wild. No public proof-of-concept code existed on GitHub at the time. The attackers read the advisory, understood the vulnerable endpoint path and injection mechanism, and built working exploits from that information alone.

Sysdig deployed honeypot Langflow instances across multiple cloud providers and documented a three-phase attack pattern over 48 hours from six unique source IPs. Phase one (hours 20 to 21): automated nuclei scanning from four IPs sending identical payloads, executing id, base64-encoding the output, and exfiltrating it to an interactsh callback server. These were privately authored nuclei templates, not from the public repository. Phase two (hours 21 to 24): a different attacker using custom Python scripts performed directory listing, credential file access, system fingerprinting, and deployed a stage-2 dropper from pre-staged infrastructure. Phase three (hours 24 to 30): targeted data harvesting, dumping all environment variables (database connection strings, API keys, cloud credentials) and locating configuration files and databases.

The exfiltrated data is the real story. Langflow instances are typically configured with API keys for OpenAI, Anthropic, AWS, and database connections. Compromising one instance gives an attacker lateral access to cloud accounts, data stores, and the AI pipelines themselves. As one researcher noted, the downstream blast radius from poisoned pipelines, compromised tool-calls, and corrupted retrieval stores could far exceed the initial RCE.

This is the second critical unauthenticated RCE in Langflow in under a year. CVE-2025-3248 (CVSS 9.8), disclosed in early 2025, exploited the /api/v1/validate/code endpoint using the exact same unsandboxed exec() call. That flaw was added to CISA's KEV catalog and actively exploited by the Flodrix botnet. The fix for CVE-2025-3248 did not prevent CVE-2026-33017 because the vulnerable endpoint is architecturally designed to be unauthenticated. The researcher who discovered the new flaw noted that adding authentication would break the entire public flows feature. The actual fix required removing the ability for the endpoint to accept external flow data entirely.

Additionally, when Langflow's default AUTO_LOGIN=true setting is active (which it is out of the box), an attacker can call GET /api/v1/auto_login to obtain a superuser token, create their own public flow, and then exploit it. This means even instances without pre-existing public flows can be targeted.

The Adversary Perspective

From an offensive standpoint, CVE-2026-33017 is close to an ideal vulnerability. The exploitation prerequisites are minimal: a single HTTP POST with a JSON payload. No authentication. No multi-step chain. No session management. The target population is large (145,000+ GitHub stars), and many instances are deployed by data science and ML teams who may operate outside the security team's standard patching cadence.

The advisory itself was the exploit documentation. It described the vulnerable endpoint path, the injection mechanism, and the root cause in enough detail for an attacker to construct a working exploit without any reverse engineering or code analysis. This is a pattern we are seeing more frequently: security advisories containing sufficient technical detail to serve as weaponization guides.

The target value is disproportionately high. AI orchestration platforms like Langflow sit at the center of agentic AI workflows, connected to LLM providers, vector databases, cloud infrastructure, and internal data sources. A single compromised Langflow instance can yield API keys for OpenAI and Anthropic (enabling LLM abuse or resale), AWS credentials (enabling cloud pivot), database connection strings (enabling data theft), and the ability to poison AI pipeline outputs that downstream applications rely on.

The structural recurrence is the most concerning aspect. The same unsandboxed exec() pattern produced two critical RCEs on different endpoints. Any security architect reviewing the Langflow codebase after CVE-2025-3248 should have audited every other call site that passes user-controlled data to exec(). The fact that CVE-2026-33017 exists suggests that the original fix was scoped to the specific endpoint rather than the underlying architectural pattern.

Figure 01

  1. STEP 01

    Target Discovery

    Automated scanning for exposed Langflow instances. If AUTO_LOGIN=true (default), attacker calls GET /api/v1/auto_login to get superuser token and creates a public flow. Otherwise, discovers existing public flow UUIDs from shared URLs.
  2. STEP 02 // CRITICAL

    RCE via Single POST

    HTTP POST to /api/v1/build_public_tmp/{flow_id}/flow with malicious Python in node definitions via the data parameter. Code passed directly to exec() with no sandboxing. Immediate arbitrary code execution as the Langflow process.
  3. STEP 03

    Reconnaissance & Fingerprinting

    Directory listing, /etc/passwd access, system fingerprinting (id, uname). Confirmation of successful RCE via base64-encoded callback to interactsh or attacker-controlled server.
  4. STEP 04 // CRITICAL

    Credential Harvesting

    Environment variables dumped (env command). API keys for OpenAI, Anthropic, AWS, database connection strings, and cloud credentials exfiltrated. Configuration files (.env, .db) located and extracted via find commands.
  5. STEP 05

    Stage-2 Payload Delivery

    Dropper downloaded from pre-staged infrastructure via bash -c "$(curl -fsSL ...)". Additional tooling deployed for persistent access and lateral movement into connected cloud environments.
  6. STEP 06 // CRITICAL

    AI Pipeline Compromise

    With access to Langflow and its connected services, attacker can poison RAG pipelines, modify AI agent behavior, exfiltrate training data, abuse LLM API keys for resale, or pivot into connected cloud infrastructure via stolen AWS/GCP credentials.

Vulnerability & Exploitation Details

  • CVE: CVE-2026-33017 (CVSS 9.3)
  • Affected: Langflow <= 1.8.1 (all versions)
  • Fixed: Langflow 1.9.0
  • Endpoint: POST /api/v1/build_public_tmp/{flow_id}/flow
  • Root Cause: Unsandboxed exec() on attacker-supplied Python in flow node definitions
  • Auth Required: None (endpoint is unauthenticated by design)
  • Exploit Complexity: Single HTTP POST with JSON payload
  • Time to Exploit: 20 hours from advisory (no public PoC)
  • Observed IPs: 6 unique sources in first 48 hours (Sysdig honeypots)
  • Exfiltrated Data: OpenAI/Anthropic/AWS API keys, DB credentials, .env files
  • Prior Related CVE: CVE-2025-3248 (CVSS 9.8, same exec() pattern, CISA KEV)

Defensive Takeaways

  1. 1

    Update Langflow to 1.9.0 and Rotate Every Connected Credential

    Patching alone is not sufficient if your instance was exposed. If your Langflow instance was internet-reachable at any point since March 17, assume credential compromise. Rotate every API key, database password, and cloud credential that Langflow had access to. This includes OpenAI, Anthropic, AWS, GCP, and any database connection strings stored in environment variables or configuration files.

  2. 2

    Never Expose AI Orchestration Tools Directly to the Internet

    Langflow, n8n, Flowise, and similar AI workflow platforms should never be internet-facing without a reverse proxy with authentication in front of them. These tools are designed for building and testing AI workflows, not for direct public exposure. Put them behind your VPN or a zero-trust access proxy. The fact that Langflow's public flow endpoint is unauthenticated by design makes network-level access control the primary security boundary.

  3. 3

    Disable AUTO_LOGIN and Audit Default Configurations

    Langflow ships with AUTO_LOGIN=true by default, which grants superuser access without authentication. Disable this immediately in any environment beyond local development. Audit all default configurations in your AI tooling stack. Default settings in developer-oriented platforms frequently prioritize convenience over security, and attackers know exactly which defaults to exploit.

  4. 4

    Inventory Your AI/ML Tooling and Bring It Under Security Governance

    Many organizations have Langflow, Jupyter, Streamlit, and similar platforms deployed by data science teams outside of standard IT security review. If your security team does not have a complete inventory of AI orchestration tools in your environment, you cannot protect what you do not know about. Conduct a discovery exercise. Check cloud provider marketplaces, container registries, and developer workstations for AI platforms running outside your managed infrastructure.

  5. 5

    Monitor for Outbound Callbacks and Unusual Environment Variable Access

    The exploitation pattern for CVE-2026-33017 involves outbound HTTP callbacks to interactsh servers and attacker infrastructure, followed by the env command to dump credentials. Monitor for outbound connections from AI platform hosts to unfamiliar external endpoints. Alert on processes accessing environment variables in bulk or executing shell commands like find against configuration directories. These are reliable behavioral indicators of post-exploitation activity regardless of the specific CVE being exploited.