CVE-2026-70478: Flowise: unauth OAuth refresh endpoint leaks access tokens

GHSA-qgvm-j2hm-6m38 CRITICAL CISA: TRACK*
Published August 4, 2026
CISO Take

Flowise's credential refresh endpoint (POST /api/v1/oauth2-credential/refresh/:credentialId) was mistakenly whitelisted to skip authentication, so anyone who knows or guesses a credential ID can trigger the server to decrypt the stored OAuth secret, refresh it against the provider, and hand back a live access_token in the HTTP response. This matters because Flowise is a low-code agent-building platform where OAuth credentials routinely connect agents to Gmail, Slack, Google Drive, and other high-value SaaS accounts — a stolen token means direct access to whatever service that credential was scoped to, with zero authentication required to trigger the leak. The vulnerability is rated critical and is trivial to exploit (no auth, no special tooling), though EPSS places it in the top 69th percentile (0.38%) with no public exploit, PoC, or Nuclei template yet, and it is not in CISA KEV — CISA's own SSVC decision is TRACK_STAR (monitor, not emergency). Repeated calls to the same endpoint can also exhaust the victim's OAuth refresh-token quota with the upstream provider, a secondary denial-of-service risk. Patch to Flowise 3.1.3 immediately, and if you can't patch now, block or require authentication on that route at your reverse proxy and rotate any OAuth credentials configured in affected instances.

Sources: NVD GitHub Advisory EPSS ATLAS

What is the risk?

High practical risk despite the absence of a public exploit: the bar to exploitation is trivial (no authentication, no exotic payload — just a valid credential ID and a POST request), and the impact is a full OAuth access token handed directly to the attacker. Exposure is confined to self-hosted Flowise instances reachable by an attacker (internet-facing or reachable from a compromised internal host) that have OAuth credentials configured for connected tools. Likelihood of opportunistic scanning is elevated given Flowise's popularity as an agent-building platform and the fact that 158 other CVEs already exist in this package, signaling a large, actively-probed attack surface even though EPSS scoring for this specific CVE is moderate.

How does the attack unfold?

Discovery
Attacker locates a reachable Flowise instance and obtains or enumerates a valid OAuth credential ID configured within it.
AML.T0006
Unauthenticated Exploitation
Attacker sends a POST to /api/v1/oauth2-credential/refresh/:credentialId, which requires no authentication.
AML.T0083
Credential Theft
Flowise decrypts the stored OAuth secret, refreshes it against the provider, and returns a live access_token in the response body.
AML.T0091.000
Impact
Attacker uses the stolen access_token to access the victim's connected service directly, or repeatedly calls the endpoint to exhaust the OAuth refresh-token quota and disrupt the integration.
AML.T0034

What systems are affected?

Package Ecosystem Vulnerable Range Patched
Flowise npm <= 3.1.2 3.1.3

Do you use Flowise? You're affected.

How severe is it?

CVSS 3.1
N/A
EPSS
0.5%
chance of exploitation in 30 days
Higher than 44% of all CVEs
Exploitation Status
Exploit Available
Exploitation: MEDIUM
Sophistication
Trivial
Exploitation Confidence
medium
CISA SSVC: Public PoC
Composite signal derived from CISA KEV, VulnCheck KEV, CISA SSVC, EPSS, Metasploit, Exploit-DB, trickest/cve, Nuclei templates, and inthewild.io exploitation reports.

What should I do?

1 step
  1. 1) Upgrade to Flowise 3.1.3 or later immediately — this removes the endpoint from WHITELIST_URLS and enforces authentication. 2) If immediate upgrade isn't possible, block external/unauthenticated access to /api/v1/oauth2-credential/refresh/:credentialId at the reverse proxy or WAF as a stopgap. 3) Rotate all OAuth credentials (client secrets and refresh tokens) stored in any internet-reachable Flowise instance, since past exposure cannot be ruled out. 4) Review OAuth provider audit logs for unexpected refresh/token-grant activity tied to Flowise-issued credentials. 5) Restrict Flowise instances to internal networks or behind authentication (VPN/SSO) as defense in depth, since credential-scoped endpoints like this one are a recurring risk class in agent-builder platforms.

What does CISA's SSVC say?

Decision Track*
Exploitation poc
Automatable Yes
Technical Impact partial

Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

ISO 42001
A.6.2.2 - Data acquisition and preparation / secure handling of AI system inputs and credentials
NIST AI RMF
MANAGE-2.3 - Mechanisms are in place to supersede, disengage, or deactivate AI systems that demonstrate performance or outcomes inconsistent with intended use
OWASP LLM Top 10
LLM06 - Sensitive Information Disclosure LLM08 - Excessive Agency

Frequently Asked Questions

What is CVE-2026-70478?

Flowise's credential refresh endpoint (POST /api/v1/oauth2-credential/refresh/:credentialId) was mistakenly whitelisted to skip authentication, so anyone who knows or guesses a credential ID can trigger the server to decrypt the stored OAuth secret, refresh it against the provider, and hand back a live access_token in the HTTP response. This matters because Flowise is a low-code agent-building platform where OAuth credentials routinely connect agents to Gmail, Slack, Google Drive, and other high-value SaaS accounts — a stolen token means direct access to whatever service that credential was scoped to, with zero authentication required to trigger the leak. The vulnerability is rated critical and is trivial to exploit (no auth, no special tooling), though EPSS places it in the top 69th percentile (0.38%) with no public exploit, PoC, or Nuclei template yet, and it is not in CISA KEV — CISA's own SSVC decision is TRACK_STAR (monitor, not emergency). Repeated calls to the same endpoint can also exhaust the victim's OAuth refresh-token quota with the upstream provider, a secondary denial-of-service risk. Patch to Flowise 3.1.3 immediately, and if you can't patch now, block or require authentication on that route at your reverse proxy and rotate any OAuth credentials configured in affected instances.

Is CVE-2026-70478 actively exploited?

No confirmed active exploitation of CVE-2026-70478 has been reported, but organizations should still patch proactively.

How to fix CVE-2026-70478?

1) Upgrade to Flowise 3.1.3 or later immediately — this removes the endpoint from WHITELIST_URLS and enforces authentication. 2) If immediate upgrade isn't possible, block external/unauthenticated access to /api/v1/oauth2-credential/refresh/:credentialId at the reverse proxy or WAF as a stopgap. 3) Rotate all OAuth credentials (client secrets and refresh tokens) stored in any internet-reachable Flowise instance, since past exposure cannot be ruled out. 4) Review OAuth provider audit logs for unexpected refresh/token-grant activity tied to Flowise-issued credentials. 5) Restrict Flowise instances to internal networks or behind authentication (VPN/SSO) as defense in depth, since credential-scoped endpoints like this one are a recurring risk class in agent-builder platforms.

What systems are affected by CVE-2026-70478?

This vulnerability affects the following AI/ML architecture patterns: agent frameworks, low-code AI orchestration, OAuth-integrated agent tools.

What is the CVSS score for CVE-2026-70478?

No CVSS score has been assigned yet.

What is the AI security impact?

Affected AI Architectures

agent frameworkslow-code AI orchestrationOAuth-integrated agent tools

MITRE ATLAS Techniques

AML.T0034 Cost Harvesting
AML.T0055 Unsecured Credentials
AML.T0083 Credentials from AI Agent Configuration
AML.T0091.000 Application Access Token

Compliance Controls Affected

ISO 42001: A.6.2.2
NIST AI RMF: MANAGE-2.3
OWASP LLM Top 10: LLM06, LLM08

What are the technical details?

Original Advisory

Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, the POST /api/v1/oauth2-credential/refresh/:credentialId endpoint is included in WHITELIST_URLS and requires no authentication. The endpoint decrypts the stored credential, sends a refresh request to the configured OAuth provider with the client secret and refresh token, and returns the refreshed access_token in the response body. An attacker with a credential ID can use the token to access the victim's connected service and can also exhaust refresh-token quota. This issue is fixed in 3.1.3.

Exploitation Scenario

An attacker discovers or is given network access to a self-hosted Flowise instance (e.g., via a misconfigured internet-facing deployment or lateral movement inside a corporate network). Flowise credential IDs are exposed or can be enumerated/observed from the UI, API responses, or prior reconnaissance. The attacker sends an unauthenticated POST to /api/v1/oauth2-credential/refresh/{credentialId}; Flowise decrypts the stored OAuth client secret and refresh token, calls the OAuth provider to mint a fresh access_token, and returns it in the HTTP response body. The attacker now holds a valid access token scoped to whatever service the credential connects to (e.g., Gmail, Slack, Drive) and uses it directly against that provider's API to read data, exfiltrate files, or send messages as the victim — entirely outside of Flowise's own logging. Alternately, the attacker repeatedly hits the endpoint to burn through the OAuth provider's refresh-token issuance quota, disrupting the legitimate integration.

Weaknesses (CWE)

CWE-200 — 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.

  • [Architecture and Design] Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.

Source: MITRE CWE corpus.

Timeline

Published
August 4, 2026
Last Modified
August 5, 2026
First Seen
August 4, 2026

Related Vulnerabilities