← Back to Feed CACHED · 2026-08-30 14:56:46 · CACHE_KEY CVE-2026-69258
CVE-2026-69258 · CWE-639 · Disclosed 2026-08-04

Flowise is a drag & drop user interface to build a customized large language model flow.

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

Someone left the mixing board unlocked and anyone walking by can swap the tracks mid-performance

CVE-2026-69258 targets the POST /api/v1/prediction/:id endpoint in Flowise < 3.1.3, which is whitelisted from authentication checks. The endpoint accepts an overrideConfig JSON object and unconditionally spreads it into internal flowConfig and flowData structures via two separate spread operations — neither of which checks the chatflow's apiOverrideStatus gate. This means an unauthenticated attacker can overwrite chatId, sessionId, chatHistory, and any $flow.* template variable consumed by downstream nodes. The result is session hijacking, cross-session data pollution, chat history manipulation, and injection of attacker-controlled values into LLM prompt templates. All versions before 3.1.3 are affected; this is distinct from the earlier GHSA-5cph-wvm9-45gj fix, which only gated replaceInputsWithConfig().

There is no official vendor CVSS score from FlowiseAI. Third-party databases (GitLab Advisory Database, SentinelOne) have scored this between 8.2 and 8.8, which is aggressive. Those scores reflect the unauthenticated, zero-interaction attack surface — and they're directionally correct. However, the direct impact is data manipulation and session hijacking, not remote code execution. The real danger is what sits *behind* Flowise: API keys for OpenAI/Azure/AWS, database credentials, and internal tool integrations stored in flow configs. An attacker who can inject into $flow variables can redirect LLM tool calls, exfiltrate secrets embedded in prompt templates, or poison AI agent outputs. The severity is genuinely HIGH, but calling it CRITICAL would require a proven RCE chain, which this CVE alone does not provide.

"Unauthenticated property injection lets anyone rewrite Flowise session context — no login needed."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Identify exposed Flowise instance

The attacker scans for Flowise instances on the internet. Shodan and Censys telemetry from April 2026 shows 12,000–15,000 publicly reachable Flowise deployments. The default port (3000) and distinctive UI fingerprint make discovery trivial. No credentials are needed at this stage.
Conditions required:
  • Flowise instance is network-reachable (internet or internal network)
Where this breaks in practice:
  • Enterprise deployments behind VPN or WAF are not directly reachable
  • Some deployments run on non-standard ports or behind reverse proxies
Detection/coverage: Shodan/Censys/FOFA queries for Flowise fingerprint; WAF logs for /api/v1/prediction/ requests from unexpected sources
STEP 02

Enumerate chatflow IDs

The attacker needs a valid chatflow :id (UUID format). Public-facing chatbots embed their chatflow ID in client-side JavaScript or iframe embed snippets. If the Flowise UI is exposed, the /api/v1/chatflows endpoint (also often unauthenticated in misconfigured deployments) can enumerate all chatflow IDs directly.
Conditions required:
  • At least one chatflow exists and is publicly shared or embeddable
Where this breaks in practice:
  • Properly authenticated instances gate the chatflows listing endpoint
  • UUIDs are not sequentially guessable if the listing endpoint is locked down
Detection/coverage: Access logs showing enumeration of /api/v1/chatflows or repeated /api/v1/prediction/ with different IDs
STEP 03

Send crafted overrideConfig payload

The attacker sends a single POST /api/v1/prediction/:id request with a malicious overrideConfig object. Because the endpoint is whitelisted from auth and the two spread operations are ungated, the injected properties overwrite internal execution context. The attacker can set chatId and sessionId to hijack another user's session, or inject values into $flow.* template variables that downstream LLM nodes consume.
Conditions required:
  • Target Flowise version < 3.1.3
  • The prediction endpoint is reachable
Where this breaks in practice:
  • Flowise 3.1.3+ patches the ungated spread
  • A WAF rule blocking unexpected keys in overrideConfig body would stop this
Detection/coverage: Application logs showing overrideConfig with unexpected keys; WAF rules matching deep JSON keys in POST body to /api/v1/prediction/
STEP 04

Hijack sessions or poison LLM context

With control over chatId/sessionId, the attacker reads another user's conversation history or impersonates them. With control over $flow.* variables, the attacker injects prompt content that the LLM processes as trusted input — enabling prompt injection, data exfiltration through tool calls, or redirection of agent actions to attacker-controlled endpoints.
Conditions required:
  • Other users are actively using the chatflow, or secrets are embedded in flow templates
Where this breaks in practice:
  • Flows without sensitive $flow variables or tool integrations limit blast radius
  • Memory-less flows (no session persistence) reduce session hijack impact
Detection/coverage: Anomalous session switching in application telemetry; unexpected $flow variable values in execution logs
STEP 05

Exfiltrate secrets or pivot via tool integrations

If the Flowise flow connects to external APIs (OpenAI, databases, internal tools) using credentials stored in the flow config, the attacker can manipulate template variables to exfiltrate those credentials or redirect tool calls. This is the worst-case scenario: the attacker gains access to whatever the Flowise agent can reach — cloud API keys, database connections, internal service endpoints.
Conditions required:
  • Flow contains tool integrations with embedded credentials
  • $flow variables are used to pass sensitive configuration to nodes
Where this breaks in practice:
  • Credentials stored in environment variables rather than flow configs are not directly reachable
  • Flows using credential references (not inline secrets) limit exposure
Detection/coverage: Outbound connection anomalies from Flowise container; API key usage from unexpected IPs
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNo confirmed exploitation of CVE-2026-69258 specifically. However, Flowise has been under active attack since April 2026 — CVE-2025-59528 (CVSS 10.0 RCE) saw exploitation from Starlink IPs per VulnCheck. This CVE's attack surface overlaps.
Proof-of-conceptNo standalone public PoC repository found. The attack is a single HTTP POST request with a crafted JSON body — trivially reproducible from the advisory description alone. No tooling required beyond curl.
EPSS0.00383 (low probability of exploitation in next 30 days). This reflects the niche install base, not the ease of exploitation.
KEV statusNot listed on CISA KEV as of 2026-08-30.
CVSS vector (third-party)Estimated CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N — network-accessible, no privileges, no interaction. SentinelOne rates 8.8; GitLab Advisory Database rates 8.2.
Affected versionsFlowise < 3.1.3 (all prior versions including 3.1.2 and below)
Fixed versionFlowise 3.1.3 — fix in GitHub PR #6279
Exposure data12,000–15,000 Flowise instances publicly exposed per Shodan/Censys (April 2026 telemetry). Many are developer/hobby instances but enterprise AI deployments exist.
Disclosure date2026-08-04 (advisory published 2026-08-06)
ReporterDisclosed via GHSA-6vh2-wg4h-4vwj; researcher not named in public advisory.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (7.5/10)

The single most decisive factor is the unauthenticated, zero-interaction attack surface on an internet-exposed endpoint with 12,000+ reachable instances — any anonymous attacker can manipulate session context and LLM prompt inputs with a single HTTP request. The impact stops short of CRITICAL because the direct chain yields data manipulation and session hijacking, not proven remote code execution or fleet-scale compromise.

HIGH Vulnerability mechanics and affected version range
MEDIUM Real-world blast radius (depends on what secrets/tools are wired into flows)
LOW Active exploitation status for this specific CVE

Why this verdict

  • Unauthenticated, zero-click attack surface: The /api/v1/prediction/:id endpoint is explicitly whitelisted from auth in the Flowise codebase. No credentials, no user interaction, no special headers. This removes the most common friction point.
  • Significant internet exposure: 12,000–15,000 Flowise instances are publicly reachable. While many are hobby/dev instances, enterprise AI deployments with sensitive tool integrations are in the mix. The reachable population is non-trivial.
  • Impact is data-plane manipulation, not control-plane RCE: The attacker gains the ability to hijack sessions, inject into LLM prompts, and manipulate flow variables — but not execute arbitrary code on the host. The severity ceiling is set by what the Flowise agent can *reach*, not by OS-level compromise.
  • Role multiplier: Flowise is an AI agent orchestration platform. In its *typical* role (b), it's a dev tool building chatbot prototypes — blast radius is low. In its *high-value* role (c), it orchestrates AI agents with database access, cloud API keys, and internal tool integrations — blast radius extends to credential theft and data exfiltration from connected systems. However, Flowise is not a canonical high-value infrastructure component (not a DC, hypervisor, IdP, or backup server). The high-value role represents a minority of deployments. The floor is HIGH, not CRITICAL.
  • Chaining potential: This CVE can chain with other Flowise vulnerabilities (e.g., CVE-2026-41268 RCE via parameter override bypass) to escalate from property injection to code execution — but that requires a separate unpatched vulnerability, not this CVE alone.

Why not higher?

CRITICAL would require either direct RCE, a proven chain to fleet/domain compromise, or a canonical high-value infrastructure role. This CVE yields session hijacking and data manipulation — serious, but bounded by what the Flowise process can access. Flowise is not an identity provider, domain controller, or hypervisor. The blast radius of a compromised Flowise instance is limited to its connected integrations, not the broader network.

Why not lower?

MEDIUM would underestimate the risk of an unauthenticated, zero-interaction vulnerability on 12,000+ internet-facing instances. The attack is trivial (single curl command), requires no privileges, and the target often holds cloud API keys and database credentials in flow configurations. The CWE-639 authorization bypass means every public chatflow is a viable entry point. Downgrading past HIGH would ignore the real-world exposure population and the sensitivity of data Flowise instances routinely handle.

05 · Compensating Control

What to do — in priority order.

  1. Place Flowise behind authentication proxy immediately — Deploy a reverse proxy (nginx, Caddy, Traefik) or zero-trust gateway (Cloudflare Access, Tailscale Funnel) that requires authentication before any request reaches Flowise. This neutralizes the unauthenticated attack vector entirely. Per noisgate mitigation SLA for HIGH, deploy within 30 days.
  2. Restrict /api/v1/prediction/ to known client IPs — If the chatbot must remain public, apply WAF or network ACL rules to allow only your frontend application's IP range to reach the prediction endpoint. Block direct access from arbitrary internet sources.
  3. Audit and rotate all credentials stored in Flowise flows — Check all chatflows for inline API keys, database passwords, and service tokens. Rotate any credentials that were accessible through $flow.* variables or flow configs. Assume they may have been exposed if your instance was internet-facing before patching.
  4. Upgrade to Flowise 3.1.3+ — The definitive fix. Per noisgate remediation SLA for HIGH, complete within 180 days. Given the trivial exploitability, prioritize this ahead of the SLA deadline.
  5. Disable unnecessary public chatflow sharing — Review all chatflows with public sharing enabled. Disable sharing for any flow that doesn't require anonymous access. This reduces the attack surface to only intentionally public flows.
What doesn't work
  • Rate limiting alone — the attack requires only a single request. Rate limiting won't prevent exploitation, only slow enumeration of chatflow IDs.
  • Content Security Policy headers — CSP protects the browser-side UI but has no effect on server-side API endpoint exploitation.
  • Flowise's built-in apiOverrideStatus setting — this is the exact control being bypassed. The vulnerability exists because the two spread operations ignore this gate entirely.
06 · Verification

Crowdsourced verification payload.

Run this on the Flowise host or from any machine with network access to the Flowise instance. No special privileges needed. Usage: bash check_cve_2026_69258.sh https://your-flowise-host:3000

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# CVE-2026-69258 Checker — Flowise overrideConfig property injection
# Usage: bash check_cve_2026_69258.sh <FLOWISE_BASE_URL>
# Exit codes: 0=VULNERABLE, 1=PATCHED, 2=UNKNOWN

set -euo pipefail

BASE_URL="${1:?Usage: $0 <FLOWISE_BASE_URL>}"
BASE_URL="${BASE_URL%/}"

echo "[*] Checking Flowise version at ${BASE_URL}..."

# Try to get version from the API
VERSION=$(curl -sf --max-time 10 "${BASE_URL}/api/v1/version" 2>/dev/null | grep -oP '"version"\s*:\s*"\K[^"]+' || true)

if [ -z "$VERSION" ]; then
  # Fallback: check package.json endpoint or HTML
  VERSION=$(curl -sf --max-time 10 "${BASE_URL}" 2>/dev/null | grep -oP 'flowise[/@]\K[0-9]+\.[0-9]+\.[0-9]+' | head -1 || true)
fi

if [ -z "$VERSION" ]; then
  echo "[!] UNKNOWN — Could not determine Flowise version."
  echo "    Verify manually: curl ${BASE_URL}/api/v1/version"
  exit 2
fi

echo "[*] Detected Flowise version: ${VERSION}"

# Parse version components
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION"

# Vulnerable: < 3.1.3
if [ "$MAJOR" -lt 3 ]; then
  echo "[!] VULNERABLE — Flowise ${VERSION} is affected by CVE-2026-69258 (fixed in 3.1.3)."
  exit 0
elif [ "$MAJOR" -eq 3 ] && [ "$MINOR" -lt 1 ]; then
  echo "[!] VULNERABLE — Flowise ${VERSION} is affected by CVE-2026-69258 (fixed in 3.1.3)."
  exit 0
elif [ "$MAJOR" -eq 3 ] && [ "$MINOR" -eq 1 ] && [ "$PATCH" -lt 3 ]; then
  echo "[!] VULNERABLE — Flowise ${VERSION} is affected by CVE-2026-69258 (fixed in 3.1.3)."
  exit 0
else
  echo "[+] PATCHED — Flowise ${VERSION} is not affected by CVE-2026-69258."
  exit 1
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: inventory every Flowise instance in your environment and verify none are directly internet-exposed without an authentication proxy. This vulnerability is unauthenticated and exploitable with a single HTTP request — no tooling, no credentials, no user interaction. If you have internet-facing Flowise instances running < 3.1.3, treat those as the priority: put them behind an auth gateway or pull them offline today. Per the noisgate mitigation SLA for HIGH severity, deploy compensating controls (auth proxy, IP restriction) within 30 days. Per the noisgate remediation SLA, upgrade all Flowise instances to 3.1.3+ within 180 days — but realistically, push the upgrade within weeks given the trivial exploitability and the fact that Flowise has been a magnet for active exploitation campaigns throughout 2026. Rotate any API keys or credentials stored in Flowise flow configurations, especially on instances that were ever internet-reachable.

Sources

  1. GitLab Advisory Database — CVE-2026-69258
  2. SentinelOne Vulnerability Database — CVE-2026-69258
  3. The Hacker News — Flowise Under Active RCE Exploitation (April 2026)
  4. Cybersecurity News — 15,000+ Flowise Instances Exposed
  5. FlowiseAI GitHub Security Advisory — GHSA-5cph-wvm9-45gj (prior overrideConfig fix)
  6. Flowise Vulnerability Rollup (April 2026)
  7. CWE-639: Authorization Bypass Through User-Controlled Key
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.