Safeguard
Vulnerability Analysis

Langflow and Marimo: When the AI Platform's Core Feature Is the Vulnerability

Three confirmed-exploited CVEs across Langflow and Marimo show what happens when a code-execution-by-design platform ships an authentication gap on the endpoint meant to guard it.

Safeguard Research Team
5 min read

Three confirmed-exploited vulnerabilities across two AI-focused development platforms — Langflow's agent-workflow builder and Marimo's reactive Python notebook — share a root cause that has nothing to do with machine learning itself: each platform ships a feature designed to execute arbitrary code by design, and each one shipped that feature with a gap in the authentication supposed to gate it.

CVECVSSComponentAdded to KEV
CVE-2026-330179.8Langflow build_public_tmp endpoint25 Mar 2026
CVE-2026-399879.8Marimo terminal WebSocket endpoint23 Apr 2026
CVE-2025-342918.8Langflow CORS + refresh-token cookie21 May 2026

Why "code execution is the product" makes authentication the only real control

Langflow and Marimo both exist to run user-authored code — that's the entire value proposition of an agent-workflow builder and a reactive notebook, respectively. Neither can sandbox that execution away without breaking its core function, which means authentication and authorization aren't one control among several; they're effectively the only thing standing between a legitimate user's workflow and an attacker's arbitrary command. When that single control has a gap, the result is close to worst-case by construction, and both CVE-2026-33017 and CVE-2026-39987 land at the maximum practical severity score for exactly this reason.

CVE-2026-33017 is precise about the mechanism: Langflow's POST /api/v1/build_public_tmp/{flow_id}/flow endpoint is intentionally unauthenticated, because it exists to let public flows run without a login. But when an optional data parameter is supplied, NVD's description states the endpoint "uses attacker-controlled flow data (containing arbitrary Python code in node definitions) instead of the stored flow data from the database" and passes it to exec() "with zero sandboxing" — an unauthenticated attacker doesn't need to compromise anything; they simply supply their own malicious flow definition to a URL that was never meant to require a credential in the first place, and it runs. Notably, NVD explicitly distinguishes this from CVE-2025-3248, an earlier Langflow RCE that Langflow's own team had already fixed by adding authentication to a different endpoint — meaning the same organization patched one hole in this same class of bug and left an adjacent one open in a companion endpoint designed with the opposite authentication assumption.

CVE-2026-39987 in Marimo follows the identical structural pattern in a different product: the /terminal/ws WebSocket endpoint provides full PTY shell access, and per NVD, unlike other WebSocket endpoints that "correctly call validate_auth()," this one "only checks the running mode and platform support before accepting connections, completely skipping authentication verification." Two unrelated vendors, in two unrelated products, both shipped one authenticated code-execution endpoint alongside one unauthenticated twin that inherited none of the protecting logic.

Why the CORS chain is a different failure mode worth tracking separately

CVE-2025-34291 doesn't skip authentication — it defeats it through browser trust boundaries instead. Langflow's CORS configuration allowed any origin (allow_origins='*') while also allowing credentials, combined with a refresh-token cookie set to SameSite=None. NVD's description lays out the resulting chain plainly: "a malicious webpage to perform cross-origin requests that include credentials and successfully call the refresh endpoint," obtaining a victim's fresh access and refresh tokens, which then unlock the platform's own built-in code-execution functionality. This is a browser-security misconfiguration, not a missing-auth-check bug, and it demonstrates that Langflow's exploited-in-the-wild history in this period includes two structurally distinct classes of failure against the same underlying asset — code execution — within a matter of months.

What to check this week

Upgrade Langflow past 1.9.0 and past 1.6.9 to close both CVE-2026-33017 and CVE-2025-34291 respectively — these are two separate fixes in two separate releases, so confirm your deployed version clears both thresholds rather than assuming one patch covers both.

Upgrade Marimo to 0.23.0 or later, and in the interim, restrict network access to any Marimo instance's WebSocket endpoints to trusted hosts only.

Audit CORS configuration on any self-hosted AI development or notebook platform for the specific combination of wildcard origins plus credentialed requests — this pairing is what turns an ordinary CORS misconfiguration into an account-takeover chain.

Treat any endpoint explicitly designed to be unauthenticated as a priority code-review target, since both Langflow's public-flow endpoint and Marimo's terminal endpoint were built to skip authentication for a legitimate reason and then failed to properly scope what that skip allowed.

A closing note on the pace of AI tooling exploitation

Both Marimo's and Langflow's most recent CVEs moved from disclosure to confirmed exploitation extremely quickly — one referenced source describes Marimo's RCE going from disclosure to exploitation in under 10 hours — reflecting how fast attackers now scan for and weaponize bugs in the rapidly growing population of self-hosted AI development platforms.

A final consideration on self-hosted AI tooling exposure

Organizations standing up Langflow, Marimo, or similar AI agent and notebook platforms internally should default to network-level isolation for these tools rather than direct internet exposure, given that both platforms' core value proposition — arbitrary code execution on demand — makes any authentication gap catastrophic almost by definition.

How Safeguard helps

Safeguard's continuous inventory extends to the growing category of self-hosted AI development and orchestration platforms, flagging code-execution-capable tools like Langflow and Marimo for the same network-exposure scrutiny applied to any other high-privilege internal system.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.