CVE-2026-70474
CVE-2026-70474 is a credential isolation failure in Flowise's OAuth credential handlers. Three endpoints — the authorize, callback, and refresh handlers — look up credentials without verifying workspace context. The authorize endpoint enforces authentication but allows cross-workspace access (broken access control). The callback and refresh endpoints are explicitly exempted from authentication, allowing unauthenticated actors to forge OAuth completion requests or refresh tokens for any credential in any workspace. The patch adds workspaceId filtering to the credential lookup queries across all three handlers. The CVSS 7.6 score misrepresents the actual risk because it measures impact on Flowise's internal state, not what those credentials actually protect. Flowise orchestrates LLM integrations — the OAuth tokens stored in Flowise credentials grant access to external services (databases, cloud APIs, vector stores, enterprise SaaS). Compromising a credential doesn't just mean accessing Flowise; it means pivoting into everything that token authorizes. A credential for a connected database or cloud service has fundamentally different blast radius than one for a personal API key, yet the CVSS treats them identically. The callback and refresh handlers being unauthenticated by design is the critical architectural failure. These endpoints must accept redirects from external OAuth providers, which cannot carry authentication — but the system never added workspace verification after the fact. This is deferred architectural debt: the design was reasonable when introduced, but workspace isolation was layered on top without revisiting the trust assumptions of existing handlers. More concerning is the refresh endpoint. The authorize and callback attacks require completing an OAuth flow with the victim — timing matters. The refresh handler takes a credential UUID and issues a new token with no temporal window required. An attacker who obtained a credential UUID can refresh tokens indefinitely. The patch closes future exploitation but does not revoke tokens already issued or authorized. If downstream OAuth providers (Google, Microsoft, etc.) have not rotated client secrets, the compromise path may persist even after patching Flowise. For defenders: audit which credentials in your Flowise instance use OAuth flows, identify which connect to sensitive downstream services (databases, cloud infrastructure, enterprise SaaS), and treat those credentials as higher-priority than the CVSS suggests. Review access logs for the callback and refresh endpoints for requests with unexpected or foreign workspace indicators. Consider rotating OAuth tokens for any credential where the downstream service supports re-authorization. The vulnerability is in the credential lookup logic — the fix is correct but does not address why credential UUIDs became routable parameters in the first place; future code reviews should flag that pattern as a trust-boundary concern.
Reviewed through automated stages and approved by a human before publication.