Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate to unconfigured Flowise instance
-
DeliveryCapture issued JWT token
-
ExploitDecrypt 'meta' field using known default key
-
InstallExtract internal user and workspace UUIDs
-
C2Re-encrypt manipulated workspace ID into new meta
-
ExecuteEmbed crafted meta into API requests
-
ImpactProbe tenant access controls for unauthorized data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Credential externalization
MITRE ATT&CK
2 techniques across 2 tactics: Persistence, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The vulnerability is triggered only when the TOKEN_HASH_SECRET environment variable is NOT explicitly configured - the application then silently falls back to the hardcoded 'Secre$t' value. Because the .env.example ships with this variable commented out, this unset state is the effective default for unconfigured deployments. The information-disclosure path (decrypting one's own JWT meta field) requires that the attacker can authenticate to the Flowise instance and obtain a JWT token; no elevated privileges are required for this path. The metadata manipulation path (re-encrypting altered user/workspace IDs) additionally requires that a downstream API endpoint processes the meta field content without re-validating identity via the JWT HMAC/RSA signature - this condition is not confirmed from available data and may vary by endpoint. Active exploitation is limited to Flowise enterprise-tier deployments that partition by user and workspace IDs in the 'meta' field; development or single-user deployments have no meaningful tenant-isolation to compromise. Exploitation does not bypass JWT signature validation and cannot on its own produce a cryptographically valid forged token. |
| Impact | The provided CVSS 4.0 vector (AV:L/AC:H/PR:H/UI:A, score 4.3) models a highly constrained scenario - local access, high privileges, high complexity, and required user interaction - which appears to reflect the privilege-escalation follow-on path rather than the information-disclosure path accessible to ordinary authenticated users over the network. The real-world risk for network-accessible Flowise deployments where TOKEN_HASH_SECRET is unset is likely higher than the 4.3 score implies: the default key 'Secre$t' is now publicly documented in both the GHSA advisory and upstream source code, any authenticated user holds a JWT containing their own encrypted meta field, and decrypting it requires only standard AES-CBC tooling. Kolega.dev assessed practical exploitability as 'Medium.' The concrete integrity impact is bounded because the JWT signature (HMAC or RSA) is validated separately - re-encoding a tampered meta field does not produce a valid signed JWT, limiting the attack to injection of crafted meta values into API calls that accept them without re-signature. No CISA KEV listing and no public proof-of-concept have been identified. The primary risk is identifier disclosure enabling reconnaissance and potential privilege escalation in multi-tenant enterprise deployments; single-tenant or development instances have reduced exposure. The CVSS AV:L and PR:H discrepancy with the description should be verified with the vendor, as the description implies network-accessible authenticated exploitation for the disclosure path. |
| Exploit ScenarioDerived | An attacker who has created a legitimate account on a Flowise instance where TOKEN_HASH_SECRET was never configured authenticates, captures their issued JWT, and uses the publicly disclosed default key 'Secre$t' (AES-256-CBC via SHA-256 of the secret) to decrypt the 'meta' field, obtaining internal user and workspace UUIDs for their own session and inferring enumerable patterns for other tenants. The attacker then re-encrypts a modified 'meta' field substituting a target workspace ID and embeds it into API requests to probe whether any multi-tenant access control endpoint processes the meta value without independently re-validating tenant membership through the JWT signature. No public proof-of-concept code has been identified, but the attack requires only standard cryptographic tooling (e.g., Node.js crypto module or openssl) and the construction details now documented in the advisory and source code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 24, 2026
Flowise versions 3.0.13 and earlier silently fall back to a hardcoded AES-256-CBC encryption key derived from the publicly known literal 'Secre$t' when TOKEN_HASH_SECRET is not configured, exposing the user and workspace IDs encoded in the 'meta' field of every JWT token issued by an unconfigured deployment. An authenticated user or network-positioned attacker who obtains any valid JWT can decrypt this metadata using the default key - now disclosed in the GHSA advisory and source code - and re-encrypt manipulated identifiers to probe downstream access controls. JWT signature validation is handled independently, so this does not constitute standalone token forgery, but identifier disclosure and metadata manipulation create a realistic stepping stone toward privilege escalation or unauthorized workspace access in multi-tenant deployments. No active exploitation is confirmed (not in CISA KEV) and no public exploit code has been identified at time of analysis; vendor-released patch Flowise 3.1.0 is available.
RemediationAI
Upgrade the flowise npm package to version 3.1.0 or later, which is the vendor-confirmed fix per the GHSA advisory at https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-m7mq-85xj-9x33. As an immediate compensating control that applies to all affected versions prior to upgrading, explicitly set TOKEN_HASH_SECRET to a cryptographically strong random string of at least 32 bytes of entropy in the deployment environment - this eliminates use of the hardcoded default regardless of installed version, but note that changing the secret will invalidate the 'meta' field of all previously issued JWTs, requiring affected users to re-authenticate. Operators should audit .env files and container environment configurations, as the .env.example ships with this variable commented out, making the misconfigured state the default for new installs. Organizations should additionally consider treating all internal user and workspace IDs previously transmitted via unconfigured Flowise instances as potentially disclosed and assess whether downstream access controls depend on those identifiers remaining opaque. The recommendation from Kolega.dev is to enforce startup failure when TOKEN_HASH_SECRET is absent, ensuring the weak default cannot be silently activated in future deployments.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Flowise is an open-source Node.js LLM orchestration platform distributed as the npm package 'flowise'. The vulnerable code at packages/server/src/enterprise/utils/tempTokenUtils.ts:31-34 computes the AES-256-CBC encryption key by SHA-256 hashing the TOKEN_HASH_SECRET environment variable, with a fallback to the string literal 'Secre$t' when the variable is absent: crypto.createHash('sha256').update(process.env.TOKEN_HASH_SECRET || 'Secre$t').digest(). This derived key is used by encryptToken() (called at passport/index.ts:394) to encrypt the 'meta' field of JWTs, which carries enterprise-tier context including user IDs and workspace IDs. The root cause is CWE-798 (Use of Hard-coded Credentials): the .env.example ships with the variable commented out ('
TOKEN_HASH_SECRET='popcorn''), making an unconfigured state the operational default for new deployments. AES-256-CBC encryption with a predictable key provides no meaningful confidentiality once the key value is publicly known. Affected CPE: cpe:2.3:a:flowise:flowise:*:*:*:*:*:*:*:*.
Know when Flowise gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:H/AT:N/PR:H/UI:A/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
Authenticated network users can decrypt JWT metadata using the publicly known default key; JWT signature validation independently limits integrity impact to low.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Flowise before 3.1.0 (npm package flowise, versions 3.0.13 and earlier) uses a weak hardcoded default value 'Secre$t' for the TOKEN_HASH_SECRET environment variable in packages/server/src/enterprise/utils/tempTokenUtils.ts when the variable is not configured. This secret derives the AES-256-CBC key used to encrypt user IDs and workspace IDs in the 'meta' field of JWT tokens. An attacker who knows the default secret can decrypt this metadata to extract internal user and workspace identifiers, and re-encrypt manipulated values such as altered user or workspace IDs. Because the JWT signature is validated separately, decrypting or tampering with this metadata does not by itself grant access, but the disclosure of internal identifiers and possible metadata manipulation could aid privilege escalation or unauthorized data access.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Flowise versions before 3.0.1 allow unauthenticated access to the Custom MCPs feature, which is designed to execute OS c
FlowiseAI Flowise version 2.2.6 contains an arbitrary file upload vulnerability in the /api/v1/attachments endpoint. Una
Arbitrary file read and write in Flowise versions prior to 3.0.8 allows an authenticated attacker with access to the flo
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Flowise is a drag & drop user interface to build a customized large language model flow. Rated critical severity (CVSS 9
Authenticated users can upload arbitrary files to Flowise 3.0.7 due to missing validation, enabling persistent storage o
Unrestricted file upload in Flowise LLM workflow builder before 3.0.13 via /api/v1/attachments endpoint allows unauthent
Missing authentication on NVD data endpoint in Flowise before 3.0.13 allows unauthenticated access to internal vulnerabi
Authenticated remote code execution in FlowiseAI Flowise (v3.0.1 up to but not including 3.0.8, and later versions when
Remote code execution in Flowise before 3.1.3 arises because its Pyodide Python-code validator (validatePythonCodeForDat
Remote code execution in FlowiseAI Flowise before 3.1.3 lets an attacker execute arbitrary OS commands as the Flowise pr
EUVD-2026-38746
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB