CVE-2026-69250
PoC moderateUnauthenticated SSRF and OAuth2 Secret Leak in Flowise Token Refresh Endpoint
Flowise before version 3.1.3 exposes the OAuth2 token refresh endpoint POST /api/v1/oauth2-credential/refresh/:credentialId without authentication and without any server-side request forgery (SSRF) protections. An unauthenticated attacker who supplies a credential ID can make the Flowise server send an outbound POST to whatever accessTokenUrl is stored in that credential — a request body containing client_id, client_secret, grant_type=refresh_token, and refresh_token — and the full remote response body is reflected back to the caller in the tokenInfo field. This enables read-capable SSRF against internal network resources and can leak OAuth2 client secrets and refresh tokens when a credential's token URL points to an attacker-controlled host. Any Flowise deployment prior to 3.1.3 is affected, with the highest risk to instances whose API is reachable by untrusted users or networks. Runtime validation is documented in the public GitHub advisory, but exploitation likelihood appears low so far (EPSS 0.3% at the 27th percentile, not in CISA KEV, no known in-the-wild abuse).
What to do: Upgrade Flowise to version 3.1.3 or later, where the refresh endpoint is no longer unauthenticated. Until patched, keep the Flowise API off untrusted networks by placing it behind an authenticating reverse proxy or restrictive firewall rules. Rotate any OAuth2 client secrets and refresh tokens stored in Flowise, and audit logs for unauthenticated calls to /api/v1/oauth2-credential/refresh/ and unexpected outbound requests originating from the Flowise host.
| flowiseai flowise | < 3.1.3 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, the OAuth2 token refresh endpoint POST /api/v1/oauth2-credential/refresh/:credentialId is unauthenticated by design and performs a server-side HTTP request to the credential-controlled accessTokenUrl without SSRF protections. Runtime validation confirmed that the endpoint was reachable without authentication, triggered outbound POST requests to an attacker-controlled server, reflected the full remote response body to the caller through tokenInfo, and sent client_id, client_secret, grant_type=refresh_token, and refresh_token in the request body. This issue is fixed in version 3.1.3.
- Vendors
- flowiseai
- Products
- flowise
- Weakness
- CWE-639
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.