Critical

Langflow: Unauthenticated Flow Execution via Webhook Authentication Bypass

  • Disclosed: 05.10.2026
  • Updated: 15.10.2026 18:17

Summary

A vulnerability in Langflow's webhook authentication logic allows unauthenticated users to trigger the execution of any flow. The system incorrectly bypasses API key validation when the WEBHOOK_AUTH_ENABLE configuration is set to False. This allows a remote attacker who knows a flow's UUID to execute it as if they were the owner, potentially leading to Remote Code Execution (RCE) or Denial of Service (DoS).

Details

The WEBHOOK_AUTH_ENABLE setting was introduced in v1.7.0 (#9139) with a default of False. The root cause is in the webhook authentication path, AuthService.get_webhook_user (src/backend/base/langflow/services/auth/service.py; the thin wrapper in src/backend/base/langflow/services/auth/utils.py just delegates to it):

python
async def get_webhook_user(self, flow_id: str, request: Request) -> UserRead:
    settings_service = self.settings
    ...
    # VULNERABILITY: If this setting is False (default in <= 1.9.0), it returns
    # the flow owner WITHOUT checking the API Key in the request.
    if not settings_service.auth_settings.WEBHOOK_AUTH_ENABLE:
        try:
            flow_owner = await get_user_by_flow_id_or_endpoint_name(flow_id)
            return flow_owner

By default (v1.7.0 through v1.9.0), Langflow treats WEBHOOK_AUTH_ENABLE as False, meaning all webhook endpoints are public. This relies exclusively on the secrecy of the flow_id (UUID), which is an insecure practice (Security by Obscurity).

A related report, GHSA-6g4m-v5q2-475v, demonstrated a concrete RCE chain through this same bypass using the PythonCodeStructuredTool component (exec() on flow-authored Python code). That report is a duplicate of this root cause and has been closed in favor of this advisory; credit for that PoC has been added here.

PoC

  1. Identify a valid flow_id for a flow that performs a sensitive action (e.g., sending an email, writing to a database, or executing a Python script).
  2. Execute a POST request to the webhook endpoint without any Authorization header or API Key:
bash
curl -X POST "http://<server-ip>:7860/api/v1/webhook/<flow_id>" \
     -H "Content-Type: application/json" \
     -d '{"input": "payload"}'
  1. Verify that the flow execution is triggered and the action is performed on the server.

Impact

This is a High-severity Authentication Bypass.

  • Remote Code Execution (RCE): Flows often contain components that execute arbitrary Python code. An attacker can leverage this to gain full control over the server.
  • Denial of Service (DoS): Attackers can exhaust system resources by triggering heavy flows concurrently.
  • Data Integrity: Unauthorized execution of flows can lead to unintended modification of databases or external systems connected via the flow.

Affected versions

>= 1.7.0, <= 1.9.0 (the range in which WEBHOOK_AUTH_ENABLE existed and defaulted to False).

Fix

Fixed in v1.9.1 by PR #12845 — fix(security): default WEBHOOK_AUTH_ENABLE to True. The setting's default changed from False to True, so webhook endpoints now require API key authentication and ownership validation by default, unless an operator explicitly opts out via LANGFLOW_WEBHOOK_AUTH_ENABLE=false.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Python (PyPI) langflow >= 1.7.0, < 1.9.1 1.9.1

References

CVSS score 9.8/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness (CWE)
CWE-306
Platform
Python (PyPI)
Package
langflow
Disclosed
05.10.2026
Updated
15.10.2026 18:17

Sources and licenses

OSV / GitHub Advisory Database - PYSEC-2026-4233 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-cf6m-vc3m-7cgm - CC BY 4.0

Vulnerability history: langflow

All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (42) in the archive
Total entries
42
First → latest
06.2024 10.2026
Without a fix
7
Exploited in attacks
5

Severity breakdown

  • Critical 15
  • High 17
  • Medium 7
  • Low 3

Disclosures per year

  1. 2024: 4
  2. 2025: 5
  3. 2026: 33
Severity:
  1. Critical · 9.1 CVE-2026-9205 < 1.10.1 1.10.1
  2. Langflow: Unauthenticated Flow Execution via Webhook Authentication Bypass this entry
    Critical · 9.8 CVE-2026-8505 >= 1.7.0, < 1.9.1 1.9.1
  3. High · 8.8 CVE-2026-7700 >= 1.3.0, < 1.10.3 1.10.3
  4. Critical · 9.6 CVE-2026-48519 < 1.9.2 1.9.2
  5. Critical · 9.6 CVE-2026-42048 < 1.9.0 1.9.0
  6. High · 7.5 CVE-2026-33484 >= 1.0.0, < 1.9.0 1.9.0
  7. Critical · 9.9 CVE-2026-33309 >= 1.2.0, < 1.9.0 1.9.0
Show more (12) Showing 20 of 32

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.