Flowise through 3.1.4 exposes GET /api/v1/upsert-history/:id and PATCH /api/v1/upsert-history without route-level permission checks, and the backing service performs no workspace or ownership validation. getAllUpsertHistory() returns UpsertHistory rows selected solely by an attacker-supplied chatflowid, and patchDeleteUpsertHistory() deletes rows by an attacker-supplied array of record UUIDs. As a result, any authenticated low-privilege user or valid API key can read or delete document-store upsert history belonging to other users and other workspaces whenever the target chatflowId (which is exposed publicly in /chatbot/<chatflowId> share links) or row ids are known. The retrievable flowData and result fields contain embedding, record-manager and vector-store node configuration, including per-node paramValues. No patched version is available.
https://www.vulncheck.com/advisories/flowise-through-3.1.4-missing-authorization-via-upsert-history
https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-jvx3-mjpw-r4gh
Published: 2026-09-26
Updated: 2026-09-28
Base Score: 7.1
Vector: CVSS2#AV:N/AC:H/Au:S/C:C/I:C/A:C
Severity: High
Base Score: 7.5
Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Severity: High
Base Score: 7.7
Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Severity: High
EPSS: 0.00275