CVE-2026-70474: Flowise: IDOR permite secuestrar credenciales OAuth2
GHSA-wch5-xp77-fxg4 HIGH PoC AVAILABLE CISA: ATTENDFlowise, la plataforma drag-and-drop para construir flujos de agentes LLM, resuelve las peticiones a sus endpoints OAuth2 (authorize, callback, refresh) buscando la credencial solo por su UUID, sin comprobar a qué workspace pertenece — y los endpoints callback y refresh ni siquiera exigen autenticación. Esto significa que cualquier usuario autenticado puede iniciar flujos OAuth2 contra credenciales de otros workspaces, y un atacante no autenticado puede forjar un callback para sobrescribir el token almacenado en cualquier credencial o refrescarlo a voluntad, sin necesitar cuenta ni permisos previos. Existe PoC público y CISA SSVC lo clasifica como ATTEND; no está en KEV ni tiene template Nuclei, pero el vector es trivial de automatizar una vez se conoce (o enumera) el UUID de la credencial objetivo, y el paquete acumula 158 CVEs previos, señal de una superficie de ataque históricamente débil. El impacto real es la toma de control de las integraciones de terceros (Gmail, Slack, Google Drive, etc.) conectadas a los flujos de agentes de la víctima. Actualiza a Flowise 3.1.3 de inmediato y rota todas las credenciales OAuth2 almacenadas tras el parche, ya que el token pudo haber sido sobrescrito antes de aplicar la actualización.
What is the risk?
Severidad alta con vector de explotación de baja complejidad: dos de los tres endpoints vulnerables (callback y refresh) están explícitamente exentos de autenticación, por lo que un atacante externo sin cuenta puede ejecutar el ataque con solo conocer o adivinar el UUID de una credencial OAuth2 objetivo. El EPSS absoluto es bajo (0.00288) pero se sitúa en el percentil 79 de probabilidad de explotación, y ya existe código PoC público, lo que reduce drásticamente la barrera de entrada. No está en CISA KEV ni tiene template Nuclei, por lo que la explotación masiva automatizada aún no está confirmada, pero el patrón IDOR (CWE-863) sobre un endpoint de gestión de credenciales es exactamente el tipo de bug que se weaponiza rápido. El riesgo real para organizaciones que operan Flowise multi-tenant (SaaS propio o instancias compartidas entre equipos) es alto: rompe el aislamiento entre workspaces, un límite de seguridad fundamental en plataformas de agentes IA que gestionan credenciales de terceros por cliente/proyecto.
How does the attack unfold?
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?
What should I do?
1 step-
1) Actualizar a Flowise 3.1.3 o superior de inmediato — es la única corrección real, ya que el bug está en la lógica de autorización del backend. 2) Si no se puede parchear al instante, restringir o bloquear a nivel de proxy/firewall el acceso externo a las rutas /api/v1/oauth2-credential/authorize, /callback y /refresh, y considerar deshabilitar temporalmente credenciales OAuth2 en workflows críticos. 3) Tras aplicar el parche, rotar TODAS las credenciales/tokens OAuth2 almacenados en Flowise, asumiendo que pudieron ser sobrescritos o refrescados por un tercero antes de la corrección. 4) Auditar la tabla Credential buscando updatedAt inesperados o cuentas de terceros vinculadas que no correspondan al owner del workspace. 5) Monitorizar logs de acceso en busca de llamadas repetidas o desde IPs anómalas a los tres endpoints con UUIDs de credencial que no correspondan al tráfico normal del tenant.
What does CISA's SSVC say?
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:
Frequently Asked Questions
What is CVE-2026-70474?
Flowise, la plataforma drag-and-drop para construir flujos de agentes LLM, resuelve las peticiones a sus endpoints OAuth2 (authorize, callback, refresh) buscando la credencial solo por su UUID, sin comprobar a qué workspace pertenece — y los endpoints callback y refresh ni siquiera exigen autenticación. Esto significa que cualquier usuario autenticado puede iniciar flujos OAuth2 contra credenciales de otros workspaces, y un atacante no autenticado puede forjar un callback para sobrescribir el token almacenado en cualquier credencial o refrescarlo a voluntad, sin necesitar cuenta ni permisos previos. Existe PoC público y CISA SSVC lo clasifica como ATTEND; no está en KEV ni tiene template Nuclei, pero el vector es trivial de automatizar una vez se conoce (o enumera) el UUID de la credencial objetivo, y el paquete acumula 158 CVEs previos, señal de una superficie de ataque históricamente débil. El impacto real es la toma de control de las integraciones de terceros (Gmail, Slack, Google Drive, etc.) conectadas a los flujos de agentes de la víctima. Actualiza a Flowise 3.1.3 de inmediato y rota todas las credenciales OAuth2 almacenadas tras el parche, ya que el token pudo haber sido sobrescrito antes de aplicar la actualización.
Is CVE-2026-70474 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-70474, increasing the risk of exploitation.
How to fix CVE-2026-70474?
1) Actualizar a Flowise 3.1.3 o superior de inmediato — es la única corrección real, ya que el bug está en la lógica de autorización del backend. 2) Si no se puede parchear al instante, restringir o bloquear a nivel de proxy/firewall el acceso externo a las rutas /api/v1/oauth2-credential/authorize, /callback y /refresh, y considerar deshabilitar temporalmente credenciales OAuth2 en workflows críticos. 3) Tras aplicar el parche, rotar TODAS las credenciales/tokens OAuth2 almacenados en Flowise, asumiendo que pudieron ser sobrescritos o refrescados por un tercero antes de la corrección. 4) Auditar la tabla Credential buscando updatedAt inesperados o cuentas de terceros vinculadas que no correspondan al owner del workspace. 5) Monitorizar logs de acceso en busca de llamadas repetidas o desde IPs anómalas a los tres endpoints con UUIDs de credencial que no correspondan al tráfico normal del tenant.
What systems are affected by CVE-2026-70474?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, OAuth2-integrated plugin/tool systems, multi-tenant SaaS platforms, credential/secrets management.
What is the CVSS score for CVE-2026-70474?
No CVSS score has been assigned yet.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0049 Exploit Public-Facing Application AML.T0083 Credentials from AI Agent Configuration AML.T0086 Exfiltration via AI Agent Tool Invocation AML.T0091.000 Application Access Token Compliance Controls Affected
What are the technical details?
Original Advisory
Flowise is a drag-and-drop user interface for building customized large language model (LLM) flows. Prior to 3.1.3, Flowise has three OAuth2 credential endpoints that look up credentials by id alone with no workspaceId filter. The authorize, callback, and refresh handlers query the Credential table by id only; callback and refresh are whitelisted from authentication. This allows any authenticated user to initiate OAuth2 flows against credentials belonging to other workspaces, allows an unauthenticated attacker to forge OAuth2 callbacks to overwrite tokens in any credential, and allows an unauthenticated attacker to refresh tokens for any credential. The affected routes include /api/v1/oauth2-credential/authorize/<VICTIM_CREDENTIAL_UUID>, /api/v1/oauth2-credential/callback?code=ATTACKER_AUTH_CODE&state=<VICTIM_CREDENTIAL_UUID>, and /api/v1/oauth2-credential/refresh/<VICTIM_CREDENTIAL_UUID>. This issue is fixed in version 3.1.3.
Exploitation Scenario
Un atacante identifica una instancia Flowise multi-tenant expuesta a internet y, mediante enumeración o filtración previa (p. ej. un export de workflow compartido que revela el UUID de una credencial), obtiene el identificador de una credencial OAuth2 de la víctima — por ejemplo, la que conecta el agente de la víctima con su cuenta de Gmail corporativa. El atacante llama sin autenticarse a /api/v1/oauth2-credential/callback?code=<código_propio>&state=<UUID_víctima>, forzando a Flowise a asociar el token OAuth2 del propio atacante con la credencial de la víctima. A partir de ahí, cualquier flujo de agente que use esa credencial opera con la cuenta del atacante en lugar de la legítima, permitiéndole interceptar o redirigir las acciones del agente (envíos de correo, lecturas de documentos). Adicionalmente, el atacante puede llamar a /refresh/<UUID_víctima> de forma repetida para mantener vivo su acceso incluso si la víctima intenta revocar el token original desde el proveedor OAuth2.
Weaknesses (CWE)
CWE-863 Incorrect Authorization
Primary
CWE-863 Incorrect Authorization
Primary
CWE-863 Incorrect Authorization CWE-863 — Incorrect Authorization: The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.
- [Architecture and Design] Divide the product into anonymous, normal, privileged, and administrative areas. Reduce the attack surface by carefully mapping roles with data and functionality. Use role-based access control (RBAC) [REF-229] to enforce the roles at the appropriate boundaries. Note that this approach may not protect against horizontal authorization, i.e., it will not protect a user from attacking others with the same role.
- [Architecture and Design] Ensure that access control checks are performed related to the business logic. These checks may be different than the access control checks that are applied to more generic resources such as files, connections, processes, memory, and database records. For example, a database may restrict access for medical records to a specific database user, but each record might only be intended to be accessible to the patient and the patient's doctor [REF-7].
Source: MITRE CWE corpus.
References
Timeline
Related Vulnerabilities
CVE-2025-71338 10.0 Flowise: unauthenticated file write enables RCE
Same package: flowise CVE-2025-59528 10.0 Flowise: Unauthenticated RCE via MCP config injection
Same package: flowise CVE-2025-61913 9.9 Flowise: path traversal in file tools leads to RCE
Same package: flowise CVE-2026-40933 9.9 Flowise: RCE via MCP stdio command injection
Same package: flowise CVE-2026-46442 9.9 Flowise: sandbox escape enables authenticated RCE
Same package: flowise