CVE-2026-56271 Overview
CVE-2026-56271 affects Flowise, an open-source low-code platform for building large language model (LLM) applications. Versions 3.0.13 and earlier ship with hardcoded default JSON Web Token (JWT) secrets (auth_token, refresh_token) and default audience and issuer values (AUDIENCE, ISSUER) in the enterprise passport authentication middleware. When operators fail to set the required environment variables, the application silently falls back to these publicly known defaults. Attackers can forge valid JWTs and impersonate any user, including administrators. The flaw is tracked under CWE-321: Use of Hard-coded Cryptographic Key.
Critical Impact
Unauthenticated network attackers can forge administrator JWTs and take full control of vulnerable Flowise deployments without any user interaction.
Affected Products
- Flowise versions 3.0.13 and earlier
- Flowise Enterprise passport authentication middleware
- Deployments missing JWT_AUTH_TOKEN_SECRET, JWT_REFRESH_TOKEN_SECRET, JWT_AUDIENCE, or JWT_ISSUER environment variables
Discovery Timeline
- 2026-07-12 - CVE-2026-56271 published to NVD
- 2026-07-14 - Last updated in NVD database
Technical Details for CVE-2026-56271
Vulnerability Analysis
The vulnerability resides in packages/server/src/enterprise/middleware/passport/index.ts, which handles JWT-based authentication for the Flowise enterprise tier. The middleware reads JWT signing secrets, audience, and issuer values from environment variables. When those variables are unset, the code falls back to string literals auth_token and refresh_token for the HMAC signing keys and AUDIENCE and ISSUER for token claims. These fallback values are visible in the public GitHub repository. An attacker who knows the software version can reproduce the token signing process locally and mint valid tokens for any user identifier.
Root Cause
The root cause is the use of hardcoded cryptographic keys as fallback defaults. Secure JWT implementations must fail closed when signing material is missing rather than substitute predictable values. Flowise instead logs no warning and continues serving requests using publicly documented secrets, converting a configuration omission into a full authentication bypass.
Attack Vector
Exploitation requires no privileges, no user interaction, and only network access to the Flowise HTTP endpoint. An attacker constructs a JWT with the HS256 algorithm, sets the aud claim to AUDIENCE, the iss claim to ISSUER, populates a subject or user claim matching an administrator, and signs the token with the string auth_token. Submitting the forged token in the Authorization header grants administrator access to all Flowise APIs, including flow management, credential retrieval, and code execution primitives exposed through custom nodes.
Refer to the VulnCheck Advisory on Flowise and the GitHub Security Advisory GHSA-cc4f-hjpj-g9p8 for further technical detail.
Detection Methods for CVE-2026-56271
Indicators of Compromise
- Authentication events where decoded JWTs contain the exact claim values aud: AUDIENCE and iss: ISSUER.
- Successful administrator logins without a preceding password authentication event in application logs.
- New chatflows, tools, or custom node code created by accounts that were previously inactive.
- Outbound network connections from the Flowise host to unfamiliar destinations following an authentication event.
Detection Strategies
- Parse Flowise access logs and flag JWTs signed with the strings auth_token or refresh_token by attempting local verification with those keys.
- Audit the Flowise process environment on each host to confirm JWT_AUTH_TOKEN_SECRET, JWT_REFRESH_TOKEN_SECRET, JWT_AUDIENCE, and JWT_ISSUER are set to non-default values.
- Alert on any authentication with the literal claim values AUDIENCE or ISSUER, which no legitimate deployment should produce.
Monitoring Recommendations
- Forward Flowise application and reverse-proxy logs to a centralized logging platform for JWT claim inspection.
- Monitor administrator API endpoints (/api/v1/credentials, /api/v1/chatflows) for access from previously unseen source IP addresses.
- Track child process creation on the Flowise host to detect abuse of custom node code execution features.
How to Mitigate CVE-2026-56271
Immediate Actions Required
- Upgrade Flowise to version 3.1.0 or later, which removes the hardcoded fallback values.
- Set strong, unique random values for JWT_AUTH_TOKEN_SECRET, JWT_REFRESH_TOKEN_SECRET, JWT_AUDIENCE, and JWT_ISSUER before restarting the service.
- Invalidate all existing sessions and rotate any API keys, credentials, or secrets stored inside Flowise chatflows.
- Restrict network exposure of Flowise instances to trusted networks or place them behind an authenticated reverse proxy.
Patch Information
Flowise 3.1.0 addresses the vulnerability by removing the hardcoded default secrets and requiring the JWT environment variables to be set. Details are published in the GitHub Security Advisory GHSA-cc4f-hjpj-g9p8.
Workarounds
- Explicitly define all four JWT environment variables with cryptographically random 256-bit values before starting Flowise.
- Place Flowise behind a reverse proxy that enforces an additional authentication layer such as mutual TLS or an identity-aware proxy.
- Block inbound traffic to the Flowise service from untrusted networks until the upgrade is complete.
# Configuration example - set strong JWT secrets before launching Flowise
export JWT_AUTH_TOKEN_SECRET="$(openssl rand -hex 32)"
export JWT_REFRESH_TOKEN_SECRET="$(openssl rand -hex 32)"
export JWT_AUDIENCE="flowise.internal.example.com"
export JWT_ISSUER="auth.internal.example.com"
npx flowise start
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

