☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Flowiseai logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N 🐛 CWE-639
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-90534

CVE-2026-90534 Vulnerability in Flowise
📅 PUBLISHED: 2026-09-12 00:00 UTC 🔄 UPDATED: 2026-10-02 19:21 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.21%
👁️
0.21% probability
5.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: USA License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-90534 is an authorization (IDOR / confused deputy) flaw in Flowise, a low-code platform for building LLM applications, affecting versions up to and including 3.1.3. The POST /api/v1/node-load-method/:name endpoint is mounted without a route-level permission check and resolves credentials by raw Credential.id via getCredentialData() without validating Credential.workspaceId against the caller's active or shared workspace. Any authenticated low-privilege user or workspace API key can force Flowise to make third-party provider calls using another workspace's credential and return provider metadata to the attacker, though the raw secret itself is not exposed.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerable surface is the POST /api/v1/node-load-method/:name route. Two independent weaknesses combine here:

  1. Missing route-level authorization. The endpoint is mounted without any permission check. Authentication (a valid user session or workspace API key) is required, but no additional authorization gate governs whether the caller may invoke the endpoint at all, nor which node component :name may be loaded.

  2. Credential resolution lacking workspace scoping (CWE-639). When the route is invoked, it passes attacker-controlled values — nodeName, loadMethod, inputs, and a credential value — into the selected component's loadMethod. The referenced credential is resolved by raw Credential.id through getCredentialData() and decrypted without verifying Credential.workspaceId against the caller's active or shared workspace. The NVD description explicitly notes this differs from other credential read paths, which are workspace-scoped. This is the core defect: the identifier is trusted as an authorization token, so cross-tenant reads are possible.

Because the credential is decrypted server-side and used to drive an outbound provider call, Flowise functions as a confused deputy: it acts with the victim workspace's privileges while the requester controls the target. The description lists statically identified affected loadMethod routines, which bound the practical impact:

  • Google Drive listFiles
  • Google Sheets listSpreadsheets
  • AWS DynamoDB KV Storage listTables

The raw credential secret is not returned to the attacker. What leaks is the provider metadata produced by those calls (e.g., file listings, spreadsheet listings, table names) — information the victim intended to be private to their workspace. This is a cross-tenant confidentiality breach scoped to what the enumerated provider operations can list, with secondary integrity implications from attacker-directed provider calls.

Notably, the CNA title and most metadata fields are empty; the technical substance derives entirely from the NVD description. No public PoC, exploit code, or Nuclei template is available, so post-exploitation specifics are inferred from the vulnerability class (authorized-but-unscoped data access) rather than demonstrated.

Exploitation Scenarios

No public PoC is available; the chain below is inferred from the NVD description and the IDOR/confused-deputy class.

  1. Reconnaissance / target identification. The attacker obtains any valid low-privilege account or workspace API key in a Flowise instance (up to 3.1.3). Because the endpoint requires authentication but not authorization, a benign account is sufficient. The attacker enumerates or guesses credential identifiers belonging to other workspaces.

  2. Triggering the flaw. The attacker sends POST /api/v1/node-load-method/:name selecting a component whose loadMethod performs a provider read. This is feasible precisely because there is no route-level permission check and because getCredentialData() resolves the supplied Credential.id without checking Credential.workspaceId against the caller's workspace.

  3. Payload / execution at the vulnerability-class level. The attacker supplies a credential identifier (Credential.id) owned by the victim workspace along with nodeName, loadMethod, and inputs. Flowise decrypts the victim credential and invokes the provider call as the victim. Targeted loadMethod calls include Google Drive listFiles, Google Sheets listSpreadsheets, and AWS DynamoDB KV Storage listTables.

  4. Post-exploitation impact. The provider metadata returned by those calls (file/ spreadsheet/table listings) is disclosed to the attacker — cross-workspace data exposure. Per the description, the raw credential secret itself is not returned, so the attacker obtains provider-backed listings and metadata rather than the underlying secret. The attacker can repeat the call with different credential identifiers and provider methods to broaden enumeration.

Impact Assessment

  • Confidentiality (High): Cross-tenant disclosure of third-party provider metadata (file, spreadsheet, and table listings) belonging to victim workspaces. Note the low-privilege authentication requirement bounds exposure to authenticated actors with valid sessions or API keys.
  • Integrity (Low): The confused-deputy behavior causes provider calls to be made under the victim credential, allowing attacker-directed operations against the victim's cloud data surface within the enumerated loadMethod capabilities.
  • Scope (Changed) [S:C]: The vulnerability lets one workspace affect resources controlled by another workspace and by external provider tenants — a genuine privilege boundary crossing, consistent with CWE-639 and the confused-deputy framing.
  • Privileges Required (PR:L): Authentication as a low-privilege user or workspace API key is required; no administrator privilege is needed.
  • Blast radius: Multi-tenant / multi-workspace Flowise deployments with Google Drive, Google Sheets, or AWS DynamoDB KV Storage credentials configured. Impact is constrained by which loadMethod routines exist and by provider authorization scopes on the victim credential.

Detection Guidance

Sigma Rule

title: Flowise Cross-Workspace Credential Access via Node-Load-Method (CVE-2026-90534)
id: 7b1c9f42-9053-4a11-9c2e-flowise3x1
status: experimental
description: Detects POST /api/v1/node-load-method/:name requests that may abuse missing workspace scoping on credential resolution.
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-90534
logsource:
  category: webserver
detection:
  selection_endpoint:
    cs-method: 'POST'
    cs-uri-stem|startswith: '/api/v1/node-load-method/'
  selection_methods:
    cs-uri-stem|contains:
      - 'listFiles'
      - 'listSpreadsheets'
      - 'listTables'
  condition: selection_endpoint or (selection_endpoint and selection_methods)
falsepositives:
  - Legitimate single-workspace node testing within a user's own workspace
level: medium
tags:
  - attack.t1190
  - cve.2026-90534

YARA Rule

rule CVE_2026_90534_Flowise_NodeLoadMethod
{
    meta:
        description = "Detects Flowise node-load-method route / credential handling abuse (CVE-2026-90534)"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-90534"
        author = "valtersit.com"
        date = "2026-01-01"
        severity = "medium"
    strings:
        $route    = "/api/v1/node-load-method/" ascii wide
        $nodeload = "loadMethod" ascii wide
        $credfunc = "getCredentialData" ascii wide
        $wspace   = "workspaceId" ascii wide
        $drive    = "listFiles" ascii wide
        $sheets   = "listSpreadsheets" ascii wide
        $dynamo   = "listTables" ascii wide
    condition:
        uint16(0) == 0x5A4D or uint32(0) == 0x464C457F or
        (any of ($route, $nodeload, $credfunc) and any of ($drive, $sheets, $dynamo))
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-90534 Flowise node-load-method cross-workspace credential access attempt"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"/api/v1/node-load-method/"; http.uri; content:"listFiles" or content:"listSpreadsheets" or content:"listTables"; classtype:attempted-user; reference:cve,2026-90534; sid:202690534; rev:1;)

Elastic Detection

POST /api/v1/node-load-method/* requests from a workspace session
sequence by user.id
  [ http where http.request.method == "POST" and startsWith(http.request.url.path, "/api/v1/node-load-method/") ]

Splunk SPL Query

index=web
| search method=POST uri_path="/api/v1/node-load-method/*"
| eval suspect=if(match(uri_path,"(?i)(listFiles|listSpreadsheets|listTables)"),"node-load-method","other")
| stats count values(uri_path) as paths by src_ip, user
| where count > 0
| sort - count

Wazuh OSSEC Rule

<group name="flowise,web,">
  <rule id="202690534" level="10">
    <if_sid>31100</if_sid>
    <match>POST /api/v1/node-load-method/</match>
    <description>CVE-2026-90534: Flowise node-load-method invocation (possible cross-workspace credential abuse)</description>
    <mitre>
      <id>T1190</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).

  1. Immediate mitigations. Upgrade to Flowise 3.1.4, where the NVD description states the issue is fixed. If upgrade is not immediately possible: restrict network access to the Flowise API so only trusted principals can reach POST /api/v1/node-load-method/:name; apply a reverse-proxy/WAF rule denying that path or requiring administrative role; rotate third-party provider credentials (Google Drive, Google Sheets, AWS DynamoDB) configured in affected workspaces; and audit provider logs for unexpected listFiles, listSpreadsheets, and listTables calls. Minimize stored provider credential scope to reduce confused-deputy reach.

  2. Patch / upgrade steps. Deploy Flowise 3.1.4 (per NVD). Validate the fix removes the missing route-level permission check and enforces workspace scoping in getCredentialData(). Because no patch commit is confirmed by tracked sources, verify the fixed behavior directly before closing the ticket.

  3. Long-term hardening. Enforce consistent workspace-scoped authorization on all credential read paths; never resolve credentials by raw Credential.id without checking Credential.workspaceId against the caller's active/shared workspace. Add route-level permission middleware to every API endpoint (defense in depth). Apply least-privilege scopes to stored provider credentials. Centralize audit logging of credential resolution and provider calls, and alert on cross-workspace credential references.

References

No public PoC or exploit code is available as of this report. CISA KEV status: not listed. No threat-actor campaign or in-the-wild exploitation evidence was provided. EPSS is not yet scored by FIRST.org; no value is asserted here.

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-90534/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.