CVE-2026-70478 Overview
CVE-2026-70478 is a critical authentication bypass vulnerability in Flowise, a drag-and-drop interface for building large language model (LLM) workflows. Versions prior to 3.1.3 expose the POST /api/v1/oauth2-credential/refresh/:credentialId endpoint through the WHITELIST_URLS allowlist, permitting unauthenticated access. The endpoint decrypts stored credentials, requests a token refresh from the configured OAuth provider using the client secret and refresh token, then returns the fresh access_token in the HTTP response. An attacker who knows or guesses a credential ID retrieves a valid access token for the victim's connected third-party service. Flowise version 3.1.3 remediates the flaw.
Critical Impact
Unauthenticated attackers can retrieve OAuth access tokens for any stored credential, enabling access to victims' connected services and exhaustion of refresh-token quotas.
Affected Products
- FlowiseAI Flowise versions prior to 3.1.3
- Deployments exposing the /api/v1/oauth2-credential/refresh/:credentialId endpoint
- Any Flowise instance storing OAuth2 credentials for third-party integrations
Discovery Timeline
- 2026-08-04 - CVE-2026-70478 published to NVD
- 2026-08-05 - Last updated in NVD database
Technical Details for CVE-2026-70478
Vulnerability Analysis
The vulnerability arises from an authorization gap in Flowise's request-routing middleware. The path POST /api/v1/oauth2-credential/refresh/:credentialId is included in the WHITELIST_URLS list, which the authentication middleware treats as public. Any HTTP client can invoke the route without a session, API key, or bearer token.
When invoked, the handler loads the credential record identified by :credentialId, decrypts the stored client_secret and refresh_token, and forwards a refresh request to the OAuth provider. The provider returns a new access_token, which Flowise echoes back in the response body. This turns the endpoint into an unauthenticated token-minting oracle for any stored OAuth credential.
Because credential identifiers are opaque but not cryptographically random secrets, attackers can enumerate or exfiltrate IDs from other endpoints, logs, or shared workflow exports. The flaw is classified under [CWE-200: Exposure of Sensitive Information to an Unauthorized Actor].
Root Cause
The endpoint was registered as public through WHITELIST_URLS without an alternative authorization check, such as verifying ownership of the credential or requiring a signed refresh token. Sensitive material transits the response boundary based solely on knowledge of the credential ID.
Attack Vector
An unauthenticated remote attacker sends a POST request to /api/v1/oauth2-credential/refresh/<credentialId> on a reachable Flowise instance. The server returns a live access token that the attacker replays against the victim's connected service, such as Google Workspace, GitHub, or a cloud provider. Repeated calls also exhaust refresh-token quotas, causing denial of service for the legitimate user. See the GitHub Security Advisory GHSA-qgvm-j2hm-6m38 for vendor detail.
Detection Methods for CVE-2026-70478
Indicators of Compromise
- Unauthenticated POST requests to /api/v1/oauth2-credential/refresh/ paths in web-server or reverse-proxy logs
- High-frequency refresh calls against a single credentialId from unfamiliar source IP addresses
- OAuth provider audit logs showing unexpected refresh_token grants or quota-exhaustion errors
- Unusual API activity on downstream services (Google, GitHub, Microsoft) originating from tokens tied to Flowise credentials
Detection Strategies
- Alert on any HTTP request to /api/v1/oauth2-credential/refresh/* that lacks an authenticated session cookie or API key header
- Correlate Flowise access logs with OAuth provider token-issuance events to identify tokens minted without user activity
- Baseline the volume of refresh operations per credential and flag deviations that suggest enumeration
Monitoring Recommendations
- Forward Flowise application and reverse-proxy logs to a centralized SIEM for correlation with identity and cloud telemetry
- Enable OAuth provider audit logging and monitor refresh-grant events for anomalies
- Track outbound API activity from services connected to Flowise for unexpected geographies or user agents
How to Mitigate CVE-2026-70478
Immediate Actions Required
- Upgrade Flowise to version 3.1.3 or later without delay
- Rotate all OAuth2 client secrets and revoke existing refresh tokens for credentials stored in vulnerable Flowise instances
- Audit OAuth provider logs for refresh operations that occurred before the upgrade and revoke any suspicious sessions
- Restrict network exposure of the Flowise admin API to trusted networks or authenticated reverse proxies
Patch Information
Flowise 3.1.3 removes the affected route from WHITELIST_URLS and enforces authentication on the OAuth2 credential refresh endpoint. Consult the FlowiseAI Security Advisory GHSA-qgvm-j2hm-6m38 for the fix reference and release notes.
Workarounds
- Block external access to /api/v1/oauth2-credential/refresh/ at a reverse proxy or web application firewall until the upgrade is applied
- Require mutual TLS or an authenticated ingress layer in front of Flowise for all API paths
- Remove unused OAuth2 credentials from Flowise to reduce the impact of token exposure
# Example nginx rule to block the vulnerable endpoint pre-upgrade
location ~ ^/api/v1/oauth2-credential/refresh/ {
return 403;
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

