GHSA-php6-83fg-gw3g: Flowise: brute-force auth grants full agent platform access

GHSA-php6-83fg-gw3g HIGH
Published May 14, 2026
CISO Take

Flowise's checkBasicAuth endpoint in versions ≤3.1.1 accepts unlimited login attempts with zero rate limiting, making credential brute-forcing trivially automatable against any internet-exposed instance. Flowise is a widely deployed no-code AI agent builder used in enterprise LLM workflows — a successful attack hands an adversary full control over pipeline configurations, connected LLM API keys, vector database credentials, and agent tool definitions. There is no active exploitation in CISA KEV and no public exploit tool confirmed, but the absence of any brute-force protection and the package's history of 69 CVEs signal systemic security debt. Patch to 3.1.2 immediately; if patching is delayed, enforce rate limiting at the reverse proxy layer and restrict the auth endpoint to trusted IP ranges.

Sources: GitHub Advisory ATLAS NVD

What is the risk?

High severity (CVSS 7.5) with a realistic and low-sophistication exploit path over the network. The primary risk amplifier is the complete absence of rate limiting — an attacker can run automated credential stuffing with no throttling or account lockout. The non-constant-time === comparison enables secondary timing-based enumeration, and distinct success/failure response messages further accelerate credential discovery. Flowise instances are frequently internet-exposed as part of enterprise AI build-out, and the 69 CVEs in the same package indicate a pattern of security debt that warrants elevated scrutiny of any production deployment.

Attack Kill Chain

Discovery
Attacker scans for internet-exposed Flowise instances via Shodan/Censys and identifies the unauthenticated /api/v1/verify/auth endpoint.
AML.T0006
Credential Brute Force
Automated credential stuffing or dictionary attack is launched against the endpoint with no rate limiting or lockout; distinct success/failure messages confirm valid credentials.
AML.T0012
Platform Compromise
Attacker authenticates to the Flowise dashboard and gains unrestricted access to LLM API keys, agent configurations, workflow pipelines, and connected tool credentials.
AML.T0083
Impact
Attacker exfiltrates LLM API keys and sensitive pipeline data, modifies agent workflows to inject malicious tool definitions, or uses access as a pivot point into connected backend systems.
AML.T0086

What systems are affected?

Package Ecosystem Vulnerable Range Patched
flowise npm <= 3.1.1 3.1.2

Do you use flowise? You're affected.

Severity & Risk

CVSS 3.1
7.5 / 10
EPSS
N/A
Exploitation Status
No known exploitation
Sophistication
Trivial

Attack Surface

AV AC PR UI S C I A
AV Network
AC High
PR None
UI Required
S Unchanged
C High
I High
A High

What should I do?

6 steps
  1. Patch immediately: upgrade flowise to 3.1.2 or later.

  2. If patching is delayed, enforce rate limiting at the reverse proxy layer (nginx limit_req_zone, Cloudflare Rate Limiting, or equivalent) targeting the /api/v1/verify/auth path.

  3. Restrict auth endpoint access to known IP ranges via firewall ACL or proxy rules.

  4. Rotate FLOWISE_USERNAME and FLOWISE_PASSWORD environment variables on any instance that was internet-exposed while running a vulnerable version.

  5. Audit access logs for brute-force indicators: high-frequency requests from single IPs, repeated 401 responses followed by a 200.

  6. For production deployments, migrate to OAuth/SSO rather than relying on basic auth.

Classification

Compliance Impact

This CVE is relevant to:

EU AI Act
Article 9 - Risk management system
ISO 42001
A.6.2 - AI system access control
NIST AI RMF
PROTECT-1.1 - Access control and authentication
OWASP LLM Top 10
LLM07 - Insecure Plugin Design

Frequently Asked Questions

What is GHSA-php6-83fg-gw3g?

Flowise's checkBasicAuth endpoint in versions ≤3.1.1 accepts unlimited login attempts with zero rate limiting, making credential brute-forcing trivially automatable against any internet-exposed instance. Flowise is a widely deployed no-code AI agent builder used in enterprise LLM workflows — a successful attack hands an adversary full control over pipeline configurations, connected LLM API keys, vector database credentials, and agent tool definitions. There is no active exploitation in CISA KEV and no public exploit tool confirmed, but the absence of any brute-force protection and the package's history of 69 CVEs signal systemic security debt. Patch to 3.1.2 immediately; if patching is delayed, enforce rate limiting at the reverse proxy layer and restrict the auth endpoint to trusted IP ranges.

Is GHSA-php6-83fg-gw3g actively exploited?

No confirmed active exploitation of GHSA-php6-83fg-gw3g has been reported, but organizations should still patch proactively.

How to fix GHSA-php6-83fg-gw3g?

1. Patch immediately: upgrade flowise to 3.1.2 or later. 2. If patching is delayed, enforce rate limiting at the reverse proxy layer (nginx limit_req_zone, Cloudflare Rate Limiting, or equivalent) targeting the /api/v1/verify/auth path. 3. Restrict auth endpoint access to known IP ranges via firewall ACL or proxy rules. 4. Rotate FLOWISE_USERNAME and FLOWISE_PASSWORD environment variables on any instance that was internet-exposed while running a vulnerable version. 5. Audit access logs for brute-force indicators: high-frequency requests from single IPs, repeated 401 responses followed by a 200. 6. For production deployments, migrate to OAuth/SSO rather than relying on basic auth.

What systems are affected by GHSA-php6-83fg-gw3g?

This vulnerability affects the following AI/ML architecture patterns: Agent frameworks, No-code LLM workflow platforms, LLM API orchestration, Enterprise AI pipelines.

What is the CVSS score for GHSA-php6-83fg-gw3g?

GHSA-php6-83fg-gw3g has a CVSS v3.1 base score of 7.5 (HIGH).

Technical Details

NVD Description

**Detection Method:** Kolega.dev Deep Code Scan | Attribute | Value | |---|---| | Severity | Medium | | CWE | CWE-522 (Insufficiently Protected Credentials) | | Location | packages/server/src/enterprise/controllers/account.controller.ts:128-135 | | Practical Exploitability | Medium | | Developer Approver | faizan@kolega.ai | ### Description The checkBasicAuth endpoint validates credentials in plaintext without rate limiting and with direct comparison. ### Affected Code ``` public async checkBasicAuth(req: Request, res: Response) { const { username, password } = req.body if (username === process.env.FLOWISE_USERNAME && password === process.env.FLOWISE_PASSWORD) { return res.json({ message: 'Authentication successful' }) ``` ### Evidence Credentials are sent in plaintext in request body and compared directly without hashing. No rate limiting prevents brute force attacks. The endpoint returns different messages for success/failure, enabling enumeration. ### Impact Credential brute-forcing - attackers can attempt unlimited username/password combinations against the basic auth system. Successful attacks grant access to the application. ### Recommendation 1) Implement rate limiting on this endpoint, 2) Use constant-time comparison to prevent timing attacks, 3) Consider using hashed comparison, 4) Return generic error messages, 5) Add logging for failed attempts. ### Notes The checkBasicAuth endpoint at line 128-135 has multiple security issues: (1) No rate limiting - the RateLimiterManager only applies to chatflow-specific endpoints, not auth endpoints. Attackers can perform unlimited brute force attempts. (2) Uses JavaScript === operator for comparison which is not constant-time, potentially enabling timing attacks. (3) Returns different messages for success ('Authentication successful') vs failure ('Authentication failed'), enabling credential enumeration. The endpoint compares plaintext credentials against environment variables FLOWISE_USERNAME and FLOWISE_PASSWORD. While this is basic auth for simpler deployments, the lack of rate limiting makes it actively exploitable for credential brute-forcing.

Exploitation Scenario

An attacker enumerates internet-exposed Flowise instances via Shodan or Censys, identifies the /api/v1/verify/auth endpoint, and launches an automated credential stuffing or dictionary attack using common defaults and leaked credential lists. The endpoint's distinct 'Authentication successful' vs 'Authentication failed' responses confirm valid credentials without triggering any lockout. Once authenticated, the attacker accesses the Flowise dashboard to harvest LLM API keys and database connection strings, inject malicious tool definitions into active agent workflows for persistence or data exfiltration, or pivot to connected backend services via the agent's configured tool integrations.

CVSS Vector

CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H

Timeline

Published
May 14, 2026
Last Modified
May 14, 2026
First Seen
May 14, 2026

Related Vulnerabilities