{"id":"CVE-2026-70474","summary":"Flowise: Cross-Workspace OAuth2 Credential Metadata Leak","details":"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/\u003cVICTIM_CREDENTIAL_UUID\u003e, /api/v1/oauth2-credential/callback?code=ATTACKER_AUTH_CODE&state=\u003cVICTIM_CREDENTIAL_UUID\u003e, and /api/v1/oauth2-credential/refresh/\u003cVICTIM_CREDENTIAL_UUID\u003e. This issue is fixed in version 3.1.3.","aliases":["GHSA-wch5-xp77-fxg4"],"modified":"2026-08-12T03:51:49.153106872Z","published":"2026-08-04T18:01:01.722Z","database_specific":{"cwe_ids":["CWE-863"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70474.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/FlowiseAI/Flowise/releases/tag/flowise@3.1.3"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70474.json"},{"type":"ADVISORY","url":"https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-wch5-xp77-fxg4"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-70474"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/flowiseai/flowise","events":[{"introduced":"0"},{"fixed":"09f099dbfda179e439ec677d06ad737375899eef"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"3.1.3"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["flowise@3.1.2","flowise-ui@3.1.2","flowise-components@3.1.2","flowise@3.1.1","flowise-ui@3.1.1","flowise-components@3.1.1","flowise@3.1.0","flowise-ui@3.1.0","flowise-components@3.1.0","pre-langchain-v1","flowise@3.0.13","flowise-ui@3.0.13","flowise-components@3.0.13","flowise@3.0.12","flowise-ui@3.0.12","flowise-components@3.0.12","flowise@3.0.11","flowise-ui@3.0.11","flowise-components@3.0.11","flowise@3.0.10","flowise-ui@3.0.10","flowise-components@3.0.10","flowise@3.0.9","flowise-ui@3.0.9","flowise-components@3.0.9","flowise@3.0.8","flowise-ui@3.0.8","flowise-components@3.0.8","flowise@3.0.7","flowise-ui@3.0.7","flowise-components@3.0.7","flowise@3.0.6","flowise-ui@3.0.6","flowise-components@3.0.6","flowise@3.0.5","flowise-ui@3.0.5","flowise-components@3.0.5","flowise@3.0.4","flowise-ui@3.0.4","flowise-components@3.0.4","flowise@3.0.3","flowise-ui@3.0.3","flowise-components@3.0.3","flowise@3.0.2","flowise-ui@3.0.2","flowise-components@3.0.2","flowise@3.0.1","flowise-ui@3.0.1","flowise-components@3.0.1","flowise@3.0.0","flowise-ui@3.0.0","flowise-components@3.0.0","flowise@2.2.8","flowise-ui@2.2.8","flowise-components@2.2.8","flowise@2.2.7-patch.1","flowise-ui@2.2.7-patch.1","flowise-components@2.2.7-patch.1","flowise@2.2.7","flowise-ui@2.2.7","flowise-components@2.2.7","flowise@2.2.6-hotfix.1","flowise@2.2.6","flowise-ui@2.2.6","flowise-components@2.2.6","flowise@2.2.5","flowise-ui@2.2.5","flowise-components@2.2.5","flowise@2.2.4","flowise-ui@2.2.4","flowise-components@2.2.4","flowise@2.2.3","flowise-ui@2.2.3","flowise-components@2.2.3","flowise@2.2.2","flowise-ui@2.2.2","flowise-components@2.2.2","flowise@2.2.1","flowise-ui@2.2.1","flowise-components@2.2.1","flowise@2.2.0","flowise-ui@2.2.0","flowise-components@2.2.0","flowise@2.1.5","flowise-ui@2.1.5","flowise-components@2.1.5","flowise@2.1.4","flowise-ui@2.1.4","flowise-components@2.1.4","flowise@2.1.3","flowise-ui@2.1.3","flowise-components@2.1.3","flowise@2.1.2","flowise-ui@2.1.2","flowise-components@2.1.2","flowise@2.1.1","flowise-ui@2.1.1","flowise-components@2.1.1","flowise@2.1.0","flowise-ui@2.1.0","flowise-components@2.1.0","flowise@2.0.7","flowise-ui@2.0.7","flowise-components@2.0.7","flowise@2.0.6","flowise-ui@2.0.6","flowise-components@2.0.6","flowise@2.0.5","flowise-ui@2.0.5","flowise-components@2.0.5","flowise@2.0.4","flowise-ui@2.0.4","flowise-components@2.0.4","flowise@2.0.3","flowise-ui@2.0.3","flowise-components@2.0.3","flowise@2.0.2","flowise-ui@2.0.2","flowise-components@2.0.2","flowise@1.8.4","flowise-ui@1.8.4","flowise-components@1.8.6","flowise@1.8.3","flowise-ui@1.8.3","flowise-components@1.8.4","flowise@1.8.2","flowise-ui@1.8.2","flowise-components@1.8.3","flowise@1.8.1","flowise-ui@1.8.1","flowise-components@1.8.1","flowise@1.8.0","flowise-ui@1.8.0","flowise-components@1.8.0","flowise@1.7.2","flowise-ui@1.7.2","flowise-components@1.7.2","flowise@1.7.1","flowise-ui@1.7.1","flowise-components@1.7.1","flowise@1.7.0","flowise-ui@1.7.0","flowise-components@1.7.0","flowise@1.6.6","flowise-ui@1.6.6","flowise-components@1.6.8","flowise@1.6.5","flowise-ui@1.6.5","flowise-components@1.6.7","flowise@1.6.4","flowise-ui@1.6.4","flowise-components@1.6.6","flowise@1.6.3","flowise-ui@1.6.3","flowise-components@1.6.5","flowise@1.6.2","flowise-ui@1.6.2","flowise-components@1.6.4","flowise@1.6.1","flowise-ui@1.6.1","flowise-components@1.6.3","flowise@1.6.0","flowise-ui@1.6.0","flowise-components@1.6.2","flowise@1.5.1","flowise-ui@1.5.1","flowise-components@1.6.1","flowise@1.5.0","flowise-ui@1.5.0","flowise-components@1.6.0","flowise@1.4.12","flowise-ui@1.4.9","flowise-components@1.5.3","flowise@1.4.11","flowise-ui@1.4.8","flowise-components@1.5.2","flowise@1.4.10","flowise-ui@1.4.7","flowise-components@1.5.1","flowise@1.4.9","flowise@1.4.8","flowise-ui@1.4.6","flowise-components@1.5.0","flowise@1.4.7","flowise-ui@1.4.5","flowise-components@1.4.9","flowise-components@1.4.8","flowise@1.4.6","flowise-ui@1.4.4","flowise-components@1.4.7","flowise@1.4.5","flowise-ui@1.4.3","flowise@1.4.4","flowise-ui@1.4.2","flowise-components@1.4.6","flowise@1.4.2","flowise-components@1.4.2","flowise@1.4.1","flowise-components@1.4.1","flowise@1.4.0","flowise-ui@1.4.0","flowise-components@1.4.0","flowise@1.3.9","flowise-ui@1.3.7","flowise-components@1.3.11","flowise-components@1.3.10","flowise@1.3.8","flowise-ui@1.3.6","flowise-components@1.3.9","flowise@1.3.7","flowise-ui@1.3.5","flowise-components@1.3.8","flowise@1.3.6","flowise-ui@1.3.4","flowise-components@1.3.7","flowise@1.3.5","flowise-ui@1.3.3","flowise-components@1.3.5","flowise@1.3.4","flowise-ui@1.3.2","flowise-components@1.3.4","flowise@1.3.3","flowise-ui@1.3.1","flowise-components@1.3.3","flowise@1.3.2","flowise-components@1.3.2","flowise@1.3.1","flowise-components@1.3.1","flowise@1.3.0","flowise-ui@1.3.0","flowise-components@1.3.0","flowise@1.2.16","flowise-ui@1.2.15","flowise-components@1.2.17","flowise@1.2.15","flowise-ui@1.2.14","flowise-components@1.2.16","flowise@1.2.14","flowise-ui@1.2.13","flowise-components@1.2.15","flowise@1.2.13","flowise-ui@1.2.12","flowise-components@1.2.14","flowise@1.2.11","flowise-ui@1.2.10","flowise-components@1.2.12","flowise@1.2.9","flowise-components@1.2.10","flowise@1.2.8","flowise-ui@1.2.7","flowise-components@1.2.9","flowise@1.2.7","flowise-ui@1.2.6","flowise-components@1.2.8","flowise@1.2.6","flowise-ui@1.2.5","flowise-components@1.2.7","flowise@1.2.5","flowise-ui@1.2.4","flowise-components@1.2.6","flowise@1.2.4","flowise-ui@1.2.3","flowise-components@1.2.5","flowise@1.2.3","flowise-ui@1.2.2","flowise-components@1.2.4","flowise-components@1.2.3","flowise@1.2.2","flowise-ui@1.2.1","flowise-components@1.2.2","flowise@1.2.1","flowise-ui@1.2.0","flowise-components@1.2.1","flowise@1.1.1","flowise-components@1.1.1","flowise@1.1.0","flowise-ui@1.1.0","flowise-components@1.1.0","flowise@1.0.1","flowise@1.0.0","flowise-ui@1.0.0","flowise-components@1.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-70474.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"}]}