← Back to Feed CACHED · 2026-07-09 08:26:00 · CACHE_KEY CVE-2026-55255
CVE-2026-55255 · CWE-639 · Disclosed 2026-06-23

Langflow is a tool for building and deploying AI-powered agents and workflows

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A shared AI notebook where anyone with a library card can run someone else's saved macros — including the ones holding OpenAI keys and cloud tokens

Langflow's /api/v1/responses endpoint takes a client-supplied flow_id (UUID) and executes the flow. The vulnerable code path in get_flow_by_id_or_endpoint_name (helpers/flow.py) queries the database on UUID alone — no user_id ownership check. Any authenticated caller can therefore invoke any other user's flow by guessing/leaking the UUID. Affected versions: all Langflow < 1.9.2 (the fix in PR #12832 initially shipped in 1.9.1, but the definitive vendor-recommended fixed release is 1.9.2). The endpoint_name resolution branch is *not* vulnerable — only the UUID branch skips the ACL.

Vendor rating is HIGH (8.4) using CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L. Reality is worse than the label. AC:H assumes UUID guessing is hard, but flows persist secrets — OpenAI/Anthropic keys, AWS/GCP credentials, DB passwords — so a single successful invocation cascades into cross-tenant secret theft. Sysdig TRT observed active exploitation starting 2026-06-25, and CISA added it to KEV on 2026-07-07 with a Friday remediation deadline. On a KEV-listed, actively-exploited auth-bypass in an AI orchestration platform that holds every credential the org uses to talk to LLMs and clouds, HIGH understates it.

"KEV-listed, actively exploited for credential harvesting. Auth barrier is trivial in shared/multi-tenant Langflow — patch to 1.9.2 now."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Obtain any authenticated Langflow account

Attacker needs *any* valid session on the target Langflow instance. This can be a self-signup on internet-exposed instances, a compromised low-privilege user, or a tenant account on a shared deployment. In enterprise deploys, an insider or a phished dev with even read-level access qualifies.
Conditions required:
  • Reachable Langflow HTTP(S) endpoint
  • Any valid authenticated principal (PR:L)
Where this breaks in practice:
  • Instances behind SSO/VPN reduce the pool of eligible attackers
  • Signup-disabled deployments require credential compromise first
Detection/coverage: Auth logs show new principals; Shodan/Censys enumerate exposed Langflow banners on port 7860/tcp
STEP 02

Enumerate or brute-force target flow UUIDs

The attacker needs a victim flow_id. UUIDv4 is not directly guessable, but UUIDs leak liberally: shared flow URLs, screenshots in Slack, exported JSON, git commits, error messages, and — critically — other Langflow API endpoints (/api/v1/flows/) often return UUIDs for any authenticated caller. Public exploit PoCs published post-disclosure automate this reconnaissance.
Conditions required:
  • Auth token from step 1
  • A leaked/enumerated victim UUID
Where this breaks in practice:
  • Pure external UUID guessing is infeasible (this is what earned AC:H)
  • Tenants with zero cross-user API visibility narrow enumeration
Detection/coverage: WAF / API gateway logging of /api/v1/flows and /api/v1/responses calls per principal reveals abnormal enumeration
STEP 03

Invoke victim flow via /api/v1/responses

Attacker POSTs to /api/v1/responses with flow_id=<victim UUID> and arbitrary input. The backend hits the vulnerable UUID branch, skips ACL, executes the flow under the victim's saved credentials/API keys. Exploit is a single HTTP request — trivially weaponized with curl.
Conditions required:
  • Valid session + valid UUID
Where this breaks in practice:
  • None once the two prerequisites are met — the code path has zero authorization guard
Detection/coverage: Application logs of /api/v1/responses calls cross-referenced with flow ownership records will reveal owner-mismatch invocations
STEP 04

Harvest secrets and pivot

Sysdig-observed campaigns modified prompts and output components to exfiltrate embedded API keys, cloud IAM tokens, database creds, and vector DB credentials returned in the flow's response. Attackers then pivot to the victim's OpenAI/Anthropic account (bill-through / model abuse), cloud tenant (S3/GCS enumeration), and downstream databases.
Conditions required:
  • Successful step 3 execution
Where this breaks in practice:
  • Vault-referenced (rather than embedded) secrets limit direct leakage
  • Egress DLP on the Langflow host can flag anomalous outbound
Detection/coverage: CSPM/CIEM anomalous key use, cloud provider billing spikes on LLM API endpoints
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusActive exploitation confirmed — Sysdig TRT first observed 2026-06-25; credential-harvesting campaigns ongoing
KEV statusListed 2026-07-07; CISA BOD 22-01 remediation deadline set for federal agencies within days of listing
EPSS0.00438 (~0.4%) — low because EPSS lags KEV signal by weeks; treat as stale
PoC availabilityPublic writeups and reproduction steps from Sysdig, Endor Labs, and VulnCheck; single-request curl exploit
CVSS vectorCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L → network-reachable, low-priv auth required, scope-changed to other users' data
Affected versionsLangflow < 1.9.2 (all releases prior)
Fixed version1.9.2 (fix originally in PR #12832 shipped in 1.9.1; upgrade directly to 1.9.2)
Exposure dataShodan / Censys show several thousand internet-facing Langflow banners on tcp/7860; unknown share behind auth
Disclosed2026-06-23 via GHSA-qrpv-q767-xqq2
ReporterLangflow maintainers via GitHub Security Advisory; exploitation reported by Sysdig Threat Research Team
04 · The Call

noisgate verdict.

Final Verdict
UPGRADED to CRITICAL (9.3/10)

Active KEV-listed exploitation for credential harvesting is the single decisive factor — this is no longer a theoretical CVSS-8.4 IDOR, it is a targeted campaign against Langflow deployments in the wild. The affected component holds LLM/cloud/DB secrets by design, so a successful invocation is functionally a credential-store breach across every flow it can reach.

HIGH Exploitation reality (Sysdig TRT + CISA KEV)
HIGH Patch efficacy of Langflow 1.9.2
MEDIUM Exposed-population count — Langflow footprint mixes internet-facing and internal deploys

Why this verdict

  • KEV + active exploitation — CISA added this on 2026-07-07 after Sysdig documented in-the-wild credential harvesting. KEV alone forces mitigation-within-hours regardless of the bucket.
  • Role multiplier — Langflow is a secret-holding orchestration plane. Flows routinely embed OpenAI/Anthropic/Bedrock API keys, cloud IAM tokens, DB creds, and vector-store secrets. A single successful cross-user execute is effectively a credential vault dump for that tenant. Blast radius: tenant → cloud accounts → LLM billing → downstream data stores. This puts the verdict floor at CRITICAL for canonical AI-platform deployments.
  • AC:H is misleading. The high complexity rating reflects UUID guessing, but UUIDs leak via other Langflow APIs, shared links, exports, and git. Once a UUID is known, exploitation is a single HTTP call.
  • PR:L barrier is soft — any authenticated user counts, and shared/multi-tenant Langflow instances (SaaS, internal dev sandboxes) are exactly the deploy pattern where cross-user attack is the point of the platform.
  • Fix is available and cheap (upgrade to 1.9.2), so there is no legitimate business reason to leave this un-remediated past KEV's window.

Why not higher?

There is no higher bucket than CRITICAL. Score is 9.3 rather than 10.0 because the attacker still needs (a) an authenticated foothold and (b) knowledge of a victim UUID — a completely unauthenticated pre-auth RCE would score higher.

Why not lower?

Downgrading to HIGH would ignore the KEV listing and observed exploitation. Downgrading to MEDIUM would ignore that the affected component is a credential-holding orchestration plane and that fix is a trivial version bump. Neither is defensible with Sysdig's telemetry on the table.

05 · Compensating Control

What to do — in priority order.

  1. Upgrade to Langflow 1.9.2 immediately — This is the vendor fix and the only durable control. Per noisgate CRITICAL SLA and KEV override, deploy within hours to 3 days, not weeks. Test in staging same-day, roll to prod within 72h.
  2. Restrict Langflow to authenticated users behind SSO + VPN/ZTNA — Remove internet exposure of the /api/v1 surface. Front Langflow with an identity-aware proxy so PR:L is not satisfied by self-signup. Deploy within 3 days.
  3. Rotate every secret referenced in any Langflow flow — Assume breach: rotate OpenAI/Anthropic/Bedrock keys, cloud IAM credentials, and DB passwords stored in flows. If exploitation window overlaps 2026-06-25 → patch date, treat exposed secrets as compromised. Complete within 3 days.
  4. Move secrets out of flow definitions into a vault reference — Even post-patch, embedded secrets are a systemic risk. Use Langflow's variable/global-variable mechanism backed by an external secret store (Vault, AWS Secrets Manager) so the next IDOR-class bug doesn't turn into another credential dump.
  5. Audit /api/v1/responses logs for owner-mismatch invocations — Cross-reference the flow_id in access logs against the flow's owner. Any hit where invoker ≠ owner between 2026-06-23 and patch date is an incident. Complete within 3 days.
What doesn't work
  • WAF signatures on /api/v1/responses — the request is syntactically legitimate; there's no malicious payload to match, just a UUID belonging to someone else.
  • Rate limiting — exploitation is a single request; rate limits don't stop the attack, only mass enumeration.
  • Disabling signup — helps but does not fix the bug for any org where multiple users legitimately share a Langflow instance (which is every enterprise deploy).
  • Network-layer egress filtering — flows can be legitimately configured to call OpenAI/AWS endpoints; you cannot distinguish attacker-driven from owner-driven calls at L3/L4.
06 · Verification

Crowdsourced verification payload.

Run this from an auditor workstation or CI runner that can reach the Langflow instance over HTTPS. Invoke as ./check_langflow.sh https://langflow.example.internal — no privileges required, uses the unauthenticated /health and version endpoints. Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate: CVE-2026-55255 Langflow IDOR version check
# Usage: ./check_langflow.sh <base_url>
# Example: ./check_langflow.sh https://langflow.corp.example.com
set -u

BASE_URL="${1:-}"
if [[ -z "$BASE_URL" ]]; then
  echo "Usage: $0 <langflow_base_url>" >&2
  exit 2
fi

FIXED_MAJOR=1
FIXED_MINOR=9
FIXED_PATCH=2

# Langflow exposes version via /api/v1/version or /health
VER_JSON=$(curl -sk --max-time 10 "${BASE_URL%/}/api/v1/version" || true)
if [[ -z "$VER_JSON" ]]; then
  VER_JSON=$(curl -sk --max-time 10 "${BASE_URL%/}/health" || true)
fi

if [[ -z "$VER_JSON" ]]; then
  echo "UNKNOWN: could not reach $BASE_URL" >&2
  exit 2
fi

VER=$(echo "$VER_JSON" | grep -oE '"version"[[:space:]]*:[[:space:]]*"[0-9]+\.[0-9]+\.[0-9]+' | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')

if [[ -z "$VER" ]]; then
  echo "UNKNOWN: version string not found in response" >&2
  exit 2
fi

IFS='.' read -r MAJ MIN PAT <<<"$VER"

if (( MAJ > FIXED_MAJOR )) || \
   (( MAJ == FIXED_MAJOR && MIN > FIXED_MINOR )) || \
   (( MAJ == FIXED_MAJOR && MIN == FIXED_MINOR && PAT >= FIXED_PATCH )); then
  echo "PATCHED: Langflow $VER >= 1.9.2"
  exit 0
else
  echo "VULNERABLE: Langflow $VER < 1.9.2 (CVE-2026-55255)"
  exit 1
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Treat this as a fire-drill: KEV-listed and confirmed exploited by Sysdig TRT since 2026-06-25. Per noisgate mitigation SLA with the KEV active-exploitation override, mitigate within hours — put Langflow behind SSO/VPN, disable self-signup, and rotate every secret embedded in any flow today. Per noisgate remediation SLA for CRITICAL, upgrade to Langflow 1.9.2 within 3 days (well inside the 90-day CRITICAL remediation window) and audit /api/v1/responses logs for owner-mismatch invocations between 2026-06-23 and your patch timestamp. Any hit is a confirmed incident — assume exposed API keys are already being used and rotate them regardless.

Sources

  1. GitHub Advisory GHSA-qrpv-q767-xqq2
  2. Sysdig: Understanding Langflow CVE-2026-55255
  3. Help Net Security: credential harvesting via CVE-2026-55255
  4. BleepingComputer: CISA orders feds to prioritize patching
  5. SentinelOne vulnerability database entry
  6. Endor Labs advisory
  7. Tenable CVE page
  8. GitLab Advisories mirror
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.