Skip to content

Critical Multi-Tenant Variable Disclosure in Flowise Cloud via Custom JavaScript Function

Critical
HenryHengZJ published GHSA-435c-mg9p-fv22 Sep 12, 2025

Package

flowise (flowise cloud)

Affected versions

cloud-hosted (as of July 2025)

Patched versions

cloud-hosted (as of Aug 2025)

Description

This vulnerability was discovered by researchers at Check Point .We are sharing this report as part of a responsible disclosure process and are happy to assist in validation and remediation if needed.

Summary

An authenticated vulnerability in Flowise Cloud https://cloud.flowiseai.com allows any user on the free tier to access sensitive environment variables from other tenants via the Custom JavaScript Function node. This includes secrets such as OpenAI API keys, AWS credentials, Supabase tokens, and Google Cloud secrets — resulting in a full cross-tenant data exposure.

Details

The issue exists in Flowise Cloud (cloud.flowiseai.com) under the POST /api/v1/node-custom-function endpoint. When using the Custom JavaScript Function node, the $vars object is injected into the execution context. This object is supposed to contain only the current workspace's environment variables, but in reality, it contains variables from all other tenants on the platform.

Even users with no configured variables in their workspace can run the following payload to extract hundreds of unrelated secrets:

{
  "javascriptFunction": "try { return Object.keys($vars).length + ' total variables: ' + Object.keys($vars).join(', '); } catch(e) { return e.toString(); }"
}

We retrieved 514 variable names, including:
• OPENAI_API_KEY
• AWS_SECRET_ACCESS_KEY
• GMAIL_APP_PASSWORD
• SUPABASE_SERVICE_ROLE_KEY
• GOOGLE_CLIENT_SECRET
• SLACK_BOT_TOKEN

PoC

  1. Create a free-tier Flowise Cloud account
  2. Send POST request to /api/v1/node-custom-function with below body:
image

Resulting in:

image

Also, we can use below payload to get value for specific variable (OPENAI_API_KEY):

image

Output:

image

Impact

This is a critical multi-tenant security flaw. Any authenticated user can access environment variables from other customers, leading to:

• Credential leakage
• Abuse of paid third-party APIs (OpenAI, AWS, Google, etc.)
• Access to internal database URIs
• Potential lateral movement or user data compromise

We strongly recommend urgent remediation and revocation of leaked credentials.

Severity

Critical

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N

CVE ID

CVE-2025-59434

Weaknesses

Exposure of Sensitive Information to an Unauthorized Actor

The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information. Learn more on MITRE.

Improper Access Control

The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor. Learn more on MITRE.

Credits