{"id":"GHSA-p5w8-m249-4r4v","summary":"Flowise: `DELETE /api/v1/chatflows/:id` does not validate resource type, allowing `agentflows:delete` and `chatflows:delete` to delete each other’s flow type","details":"# summary:\nIn Flowise, `DELETE /api/v1/chatflows/:id` authorizes requests with `checkAnyPermission('chatflows:delete,agentflows:delete')`. Possession of either permission is sufficient to reach the delete path. The delete logic does not validate the target resource `type`, allowing a caller with only `agentflows:delete` to delete a `CHATFLOW`, and a caller with only `chatflows:delete` to delete an `AGENTFLOW`.\n\n# details:\nThe delete route accepts either `chatflows:delete` or `agentflows:delete`. The subsequent logic only resolves the target record by `id` and `workspaceId`, then deletes by `id` without checking whether the target resource type matches the granted permission domain.\n\nAs a result, there is no binding between permission scope and flow type:\n\n- `agentflows:delete` can be used to delete `CHATFLOW`\n- `chatflows:delete` can be used to delete `AGENTFLOW`\n\nThis breaks the intended RBAC separation between Chatflows and Agentflows.\n\n# impact:\nUsers authorized to manage only one flow type can delete the other flow type within the same workspace, resulting in unauthorized deletion and configuration loss.\n\n# reproduction steps:\n\n1. Log in as a user who can create API keys.\n2. Create a normal `CHATFLOW` and record its `id`.\n3. Create an API key with only `agentflows:delete`.\n4. Use that API key to send:\n\n```bash\ncurl -i -X DELETE \\\n  -H 'Authorization: Bearer \u003cagentflows_delete_only_key\u003e' \\\n  http://localhost:8080/api/v1/chatflows/\u003cchatflow_id\u003e\n```\n\n5. Observe a `200 OK` response, for example:\n\n```json\n{\"raw\":[],\"affected\":1}\n```\n\n6. Read the same `id` again and observe `404 Not Found`.","aliases":["CVE-2026-69262"],"modified":"2026-08-04T17:11:03.543517Z","published":"2026-08-04T16:50:32Z","database_specific":{"cwe_ids":["CWE-863"],"severity":"HIGH","github_reviewed":true,"github_reviewed_at":"2026-08-04T16:50:32Z","nvd_published_at":null},"references":[{"type":"WEB","url":"https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-p5w8-m249-4r4v"},{"type":"WEB","url":"https://github.com/FlowiseAI/Flowise/pull/6445"},{"type":"WEB","url":"https://github.com/FlowiseAI/Flowise/commit/2f528ceced74afaa95fc7a282965e7788796448b"},{"type":"PACKAGE","url":"https://github.com/FlowiseAI/Flowise"},{"type":"WEB","url":"https://github.com/FlowiseAI/Flowise/releases/tag/flowise@3.1.3"}],"affected":[{"package":{"name":"flowise","ecosystem":"npm","purl":"pkg:npm/flowise"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.1.3"}]}],"database_specific":{"last_known_affected_version_range":"\u003c= 3.1.2","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/08/GHSA-p5w8-m249-4r4v/GHSA-p5w8-m249-4r4v.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"}]}