{"description":"Trending threats, MITRE ATT\u0026CK coverage, and detection metadata. Fed continuously.","feed_url":"https://feed.craftedsignal.io/tags/cross-workspace/feed.json","home_page_url":"https://feed.craftedsignal.io/","items":[{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["flowise \u003c= 3.1.1"],"_cs_severities":["high"],"_cs_tags":["mass-assignment","cross-workspace","flowiseai"],"_cs_type":"advisory","_cs_vendors":["FlowiseAI"],"content_html":"\u003cp\u003eFlowiseAI versions 3.1.1 and earlier are vulnerable to a mass assignment vulnerability in the Assistant controller located in \u003ccode\u003epackages/server/src/services/assistants/index.ts\u003c/code\u003e. An authenticated user can exploit this vulnerability to move an assistant, including its configuration, instructions, attached tools, and credentials, from one workspace to another. The vulnerability stems from the use of \u003ccode\u003eObject.assign(entity, body)\u003c/code\u003e without proper input validation, allowing a malicious actor to overwrite the \u003ccode\u003eworkspaceId\u003c/code\u003e and \u003ccode\u003eid\u003c/code\u003e attributes of the Assistant entity. This issue is similar to a previously patched vulnerability in the \u003ccode\u003eDocumentStore\u003c/code\u003e (commit 840d2ae), highlighting a pattern of insecure mass assignment within the application. This vulnerability can lead to cross-workspace data access and privilege escalation.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAn attacker authenticates to FlowiseAI as a member of workspace A, obtaining a valid session cookie or JWT.\u003c/li\u003e\n\u003cli\u003eThe attacker creates (or reuses) an existing assistant within workspace A and notes the assistant\u0026rsquo;s \u003ccode\u003eid\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe attacker crafts a malicious \u003ccode\u003ePUT\u003c/code\u003e request to the \u003ccode\u003e/api/v1/assistants/\u0026lt;id\u0026gt;\u003c/code\u003e endpoint.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ePUT\u003c/code\u003e request includes a JSON body containing a \u003ccode\u003eworkspaceId\u003c/code\u003e attribute set to the UUID of workspace B (the target workspace).\u003c/li\u003e\n\u003cli\u003eThe FlowiseAI server receives the request and calls \u003ccode\u003eObject.assign(updateEntity, body)\u003c/code\u003e within the Assistant controller.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eworkspaceId\u003c/code\u003e in the request body overwrites the existing \u003ccode\u003eworkspaceId\u003c/code\u003e of the assistant entity.\u003c/li\u003e\n\u003cli\u003eThe persistence layer updates the assistant record in the database, associating it with workspace B.\u003c/li\u003e\n\u003cli\u003eThe assistant is now accessible to members of workspace B, and the attacker in workspace A loses access.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eThis vulnerability allows any authenticated user with permission to update an assistant to move it to another workspace, violating workspace isolation. Given that workspace UUIDs are easily enumerated via the API, an attacker can readily target specific workspaces. Successfully moving an assistant grants the destination workspace access to the assistant\u0026rsquo;s configuration, instructions, attached tools, and credentials, potentially leading to unauthorized access to sensitive data and resources. This issue is classified as high severity because it breaks a fundamental security boundary within the application.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade FlowiseAI to a version higher than 3.1.1 to incorporate the fix described in PR \u003ca href=\"https://github.com/FlowiseAI/Flowise/pull/6128\"\u003ehttps://github.com/FlowiseAI/Flowise/pull/6128\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDeploy the Sigma rule \u003ccode\u003eDetect FlowiseAI WorkspaceId Mass Assignment\u003c/code\u003e to your SIEM to identify potential exploitation attempts.\u003c/li\u003e\n\u003cli\u003eImplement regression tests as described in the advisory to prevent future occurrences of this type of vulnerability; ensure requests containing \u003ccode\u003eworkspaceId\u003c/code\u003e, \u003ccode\u003eid\u003c/code\u003e, \u003ccode\u003ecreatedDate\u003c/code\u003e, or \u003ccode\u003eupdatedDate\u003c/code\u003e are rejected on both create and update paths.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-05-14T16:24:43Z","date_published":"2026-05-14T16:24:43Z","id":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-workspace-takeover/","summary":"FlowiseAI is vulnerable to a mass assignment vulnerability in the Assistant controller/service allowing an attacker, authenticated as a member of one workspace, to move an assistant (including configurations, instructions, tools and credentials) to another workspace by overwriting the `workspaceId` and `id` fields in the request body, leading to cross-workspace data takeover and IDOR.","title":"FlowiseAI Cross-Workspace Assistant Takeover via Mass Assignment","url":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-workspace-takeover/"},{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["Flowise \u003c= 3.1.1"],"_cs_severities":["high"],"_cs_tags":["mass-assignment","cross-workspace","privilege-escalation"],"_cs_type":"advisory","_cs_vendors":["FlowiseAI"],"content_html":"\u003cp\u003eFlowiseAI versions 3.1.1 and earlier are vulnerable to a mass assignment vulnerability in the CustomTemplate controller (\u003ccode\u003epackages/server/src/services/marketplaces/index.ts\u003c/code\u003e). This flaw allows an authenticated attacker to modify the \u003ccode\u003eworkspaceId\u003c/code\u003e of a custom template through an API request, effectively moving the template to another workspace. The vulnerability stems from the use of \u003ccode\u003eObject.assign(entity, body)\u003c/code\u003e without proper input validation, enabling the client to control critical fields like \u003ccode\u003eworkspaceId\u003c/code\u003e and \u003ccode\u003eid\u003c/code\u003e. This issue poses a significant threat as it breaks workspace isolation and allows unauthorized access to custom templates. The vulnerability was identified and a fix has been suggested via allowlisting in PR \u003ca href=\"https://github.com/FlowiseAI/Flowise/pull/6129\"\u003ehttps://github.com/FlowiseAI/Flowise/pull/6129\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAttacker, authenticated to workspace A, obtains a valid session cookie/JWT for the Flowise web UI.\u003c/li\u003e\n\u003cli\u003eAttacker identifies or creates a custom template within workspace A and notes its entity \u003ccode\u003eid\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAttacker crafts a \u003ccode\u003ePUT /api/v1/customtemplates/\u0026lt;id\u0026gt;\u003c/code\u003e request, including a JSON body with the target workspace B\u0026rsquo;s UUID in the \u003ccode\u003e\u0026quot;workspaceId\u0026quot;\u003c/code\u003e field (e.g., \u003ccode\u003e\u0026quot;workspaceId\u0026quot;: \u0026quot;\u0026lt;workspace-B-id\u0026gt;\u0026quot;\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eThe server receives the request and calls \u003ccode\u003eObject.assign(updateEntity, body)\u003c/code\u003e, copying the attacker-supplied \u003ccode\u003eworkspaceId\u003c/code\u003e into the entity.\u003c/li\u003e\n\u003cli\u003eThe updated entity, now associated with workspace B, is persisted to the database.\u003c/li\u003e\n\u003cli\u003eThe custom template is now accessible to members of workspace B and can be modified or used by them.\u003c/li\u003e\n\u003cli\u003eThe attacker from workspace A loses access to the template, as it is no longer associated with their workspace.\u003c/li\u003e\n\u003cli\u003eWorkspace A\u0026rsquo;s audit logs do not reflect any unauthorized activity, as the operation appears as a normal template update.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eThis vulnerability allows any authenticated user to violate workspace boundaries, potentially exposing sensitive workflow templates to unauthorized users. An attacker can move a customtemplate to any workspace whose UUID they can enumerate, which is made trivial due to workspace UUIDs being exposed in API responses. Successful exploitation allows unauthorized access, modification, and usage of custom templates, potentially leading to data leaks or other malicious activities.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to a version of FlowiseAI that includes the fix from PR \u003ca href=\"https://github.com/FlowiseAI/Flowise/pull/6129\"\u003ehttps://github.com/FlowiseAI/Flowise/pull/6129\u003c/a\u003e, which implements an allowlist pattern.\u003c/li\u003e\n\u003cli\u003eImplement regression tests as described in the advisory to prevent future regressions that could reintroduce mass assignment vulnerabilities in CustomTemplate creation and update paths.\u003c/li\u003e\n\u003cli\u003eDeploy the Sigma rule \u003ccode\u003eDetect Flowise CustomTemplate WorkspaceId Modification\u003c/code\u003e to detect potential exploitation attempts by monitoring API requests to the \u003ccode\u003e/api/v1/customtemplates/\u0026lt;id\u0026gt;\u003c/code\u003e endpoint with a modified \u003ccode\u003eworkspaceId\u003c/code\u003e in the request body.\u003c/li\u003e\n\u003cli\u003eEnable webserver logging to facilitate the detection of malicious HTTP requests.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-05-14T16:24:30Z","date_published":"2026-05-14T16:24:30Z","id":"https://feed.craftedsignal.io/briefs/2026-05-flowise-template-takeover/","summary":"FlowiseAI is vulnerable to cross-workspace data takeover due to mass assignment in the CustomTemplate controller, allowing an attacker to move templates to other workspaces by overwriting the `workspaceId` via API request.","title":"FlowiseAI CustomTemplate Mass Assignment Allows Cross-Workspace Template Takeover","url":"https://feed.craftedsignal.io/briefs/2026-05-flowise-template-takeover/"},{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["flowise (\u003c= 3.1.1)"],"_cs_severities":["high"],"_cs_tags":["mass-assignment","cross-workspace","idor","flowiseai"],"_cs_type":"advisory","_cs_vendors":["FlowiseAI"],"content_html":"\u003cp\u003eFlowiseAI versions 3.1.1 and earlier contain a mass assignment vulnerability in the Dataset service, allowing authenticated users to move datasets between workspaces. The vulnerability stems from the use of \u003ccode\u003eObject.assign()\u003c/code\u003e to copy request body parameters directly into Dataset entities without proper input validation or sanitization. Specifically, the \u003ccode\u003eworkspaceId\u003c/code\u003e field can be overwritten by a malicious user, leading to unauthorized access and data exposure in the target workspace. The root cause mirrors a previously patched vulnerability in the \u003ccode\u003eDocumentStore\u003c/code\u003e service, indicating a systemic issue with input handling across the application. This flaw can be exploited by any authenticated user with permission to update a dataset.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAn attacker authenticates to FlowiseAI within workspace A, obtaining a valid session cookie or JWT.\u003c/li\u003e\n\u003cli\u003eThe attacker identifies a dataset within workspace A that they have permission to update.\u003c/li\u003e\n\u003cli\u003eThe attacker crafts a malicious API request (PUT \u003ccode\u003e/api/v1/datasets/\u0026lt;id\u0026gt;\u003c/code\u003e) to update the target dataset.\u003c/li\u003e\n\u003cli\u003eThe request body includes a \u003ccode\u003eworkspaceId\u003c/code\u003e parameter set to the UUID of a different workspace (workspace B).\u003c/li\u003e\n\u003cli\u003eThe server-side Dataset controller uses \u003ccode\u003eObject.assign(updateEntity, body)\u003c/code\u003e to update the dataset entity, blindly accepting the malicious \u003ccode\u003eworkspaceId\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe persistence layer commits the changes to the database, updating the \u003ccode\u003eworkspaceId\u003c/code\u003e of the dataset.\u003c/li\u003e\n\u003cli\u003eThe dataset is now associated with workspace B, granting access to members of workspace B.\u003c/li\u003e\n\u003cli\u003eThe attacker in workspace A loses access to the dataset, effectively transferring ownership.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eThis vulnerability allows any authenticated user to move datasets from one workspace to another, leading to unauthorized data access and potential data breaches. Datasets contain training and evaluation data, which may include sensitive information. Successful exploitation allows unauthorized access to this data in the destination workspace, and removes access from the original owner. Given that workspace UUIDs can be enumerated via the API, the impact is significant.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply the patch from PR \u003ca href=\"https://github.com/FlowiseAI/Flowise/pull/6051\"\u003ehttps://github.com/FlowiseAI/Flowise/pull/6051\u003c/a\u003e which implements an allowlist pattern.\u003c/li\u003e\n\u003cli\u003eImplement regression tests to ensure that attempts to modify \u003ccode\u003eworkspaceId\u003c/code\u003e, \u003ccode\u003eid\u003c/code\u003e, \u003ccode\u003ecreatedDate\u003c/code\u003e, or \u003ccode\u003eupdatedDate\u003c/code\u003e fields via API requests are rejected or ignored (see suggested fix in content).\u003c/li\u003e\n\u003cli\u003eDeploy the Sigma rule below to detect suspicious updates to dataset entities with modified \u003ccode\u003eworkspaceId\u003c/code\u003e values.\u003c/li\u003e\n\u003cli\u003eImplement input validation on all API endpoints that modify Dataset entities to prevent mass assignment vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-05-14T16:24:15Z","date_published":"2026-05-14T16:24:15Z","id":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-dataset-takeover/","summary":"FlowiseAI is vulnerable to a mass assignment vulnerability via `Object.assign(entity, body)` which allows a client-controlled `workspaceId` to be overwritten on the Dataset entity, leading to cross-workspace data takeover and IDOR.","title":"FlowiseAI Cross-Workspace Dataset Takeover via Mass Assignment","url":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-dataset-takeover/"},{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["flowise \u003c= 3.1.1"],"_cs_severities":["high"],"_cs_tags":["mass-assignment","idor","cross-workspace"],"_cs_type":"advisory","_cs_vendors":["FlowiseAI"],"content_html":"\u003cp\u003eFlowiseAI versions 3.1.1 and earlier contain a mass assignment vulnerability in the DatasetRow controller/service (\u003ccode\u003epackages/server/src/services/dataset/index.ts\u003c/code\u003e). The vulnerability arises from the use of \u003ccode\u003eObject.assign(entity, body)\u003c/code\u003e without an explicit field allowlist when creating or updating DatasetRow entities. This allows an attacker to control properties like \u003ccode\u003eworkspaceId\u003c/code\u003e and \u003ccode\u003eid\u003c/code\u003e through the request body, leading to a cross-workspace data takeover. The vulnerability is similar to a previously patched issue in \u003ccode\u003eDocumentStore\u003c/code\u003e (commit 840d2ae), where an explicit field-by-field allowlist was implemented. This oversight enables an authenticated user to move DatasetRows, which contain individual training/evaluation records, between workspaces, potentially exposing sensitive data.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAn attacker, authenticated as a member of workspace A, obtains a valid session cookie or JWT for the Flowise web UI.\u003c/li\u003e\n\u003cli\u003eThe attacker creates a new DatasetRow within workspace A using the documented API (or reuses an existing one).\u003c/li\u003e\n\u003cli\u003eThe attacker identifies the \u003ccode\u003eid\u003c/code\u003e of the DatasetRow they control.\u003c/li\u003e\n\u003cli\u003eThe attacker sends a \u003ccode\u003ePUT\u003c/code\u003e request to the \u003ccode\u003e/api/v1/datasetrows/\u0026lt;id\u0026gt;\u003c/code\u003e endpoint (or an equivalent update endpoint).\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ePUT\u003c/code\u003e request includes a JSON body containing \u003ccode\u003e\u0026quot;workspaceId\u0026quot;: \u0026quot;\u0026lt;workspace-B-id\u0026gt;\u0026quot;\u003c/code\u003e, where \u003ccode\u003e\u0026lt;workspace-B-id\u0026gt;\u003c/code\u003e is the UUID of a different, arbitrary workspace.\u003c/li\u003e\n\u003cli\u003eThe server-side controller receives the request and executes \u003ccode\u003eObject.assign(updateEntity, body)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eworkspaceId\u003c/code\u003e value from the request body overwrites the original \u003ccode\u003eworkspaceId\u003c/code\u003e field of the \u003ccode\u003eupdateEntity\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe persistence layer commits the modified row to the database, resulting in the DatasetRow being associated with workspace B. Members of workspace B can now access, modify, and utilize the transferred DatasetRow, while workspace A loses access.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eSuccessful exploitation allows any authenticated workspace member with the permission to update a DatasetRow to move it to any workspace. Since workspace UUIDs are exposed through API responses (e.g., \u003ccode\u003e/api/v1/workspaces\u003c/code\u003e), enumeration is trivial. This cross-workspace boundary violation exposes training/evaluation records contained in DatasetRows to unauthorized users. An attacker can also rebind a row to a Dataset in another workspace via \u003ccode\u003edatasetId\u003c/code\u003e, further exposing row content.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to FlowiseAI version 3.1.2 or later, where the fix from PR \u003ca href=\"https://github.com/FlowiseAI/Flowise/pull/6051\"\u003ehttps://github.com/FlowiseAI/Flowise/pull/6051\u003c/a\u003e has been applied, implementing an allowlist pattern.\u003c/li\u003e\n\u003cli\u003eDeploy the Sigma rule \u0026ldquo;Detect FlowiseAI DatasetRow WorkspaceId Modification\u0026rdquo; to detect attempts to modify the \u003ccode\u003eworkspaceId\u003c/code\u003e parameter via the \u003ccode\u003e/api/v1/datasetrows\u003c/code\u003e endpoint.\u003c/li\u003e\n\u003cli\u003eImplement regression tests that assert requests containing \u003ccode\u003eworkspaceId\u003c/code\u003e, \u003ccode\u003eid\u003c/code\u003e, \u003ccode\u003ecreatedDate\u003c/code\u003e, or \u003ccode\u003eupdatedDate\u003c/code\u003e are rejected or do not change those columns on the persisted row for both create and update paths, as suggested in the overview.\u003c/li\u003e\n\u003cli\u003eMonitor web server logs for PUT requests to \u003ccode\u003e/api/v1/datasetrows\u003c/code\u003e with unusual parameters in the request body.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-05-14T16:24:01Z","date_published":"2026-05-14T16:24:01Z","id":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-datasetrow-takeover/","summary":"FlowiseAI is vulnerable to a mass assignment vulnerability in the DatasetRow controller/service, allowing an authenticated attacker to overwrite the `workspaceId` and `id` of a DatasetRow entity, leading to cross-workspace data takeover and IDOR.","title":"FlowiseAI DatasetRow Mass Assignment Allows Cross-Workspace Data Takeover","url":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-datasetrow-takeover/"},{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["flowise (\u003c= 3.1.1)","FlowiseAI"],"_cs_severities":["high"],"_cs_tags":["mass-assignment","cross-workspace","privilege-escalation"],"_cs_type":"advisory","_cs_vendors":["FlowiseAI"],"content_html":"\u003cp\u003eFlowiseAI, a low-code/no-code platform for building AI orchestration flows, is susceptible to a mass assignment vulnerability in versions 3.1.1 and earlier. The vulnerability resides within the Evaluation controller/service (\u003ccode\u003epackages/server/src/services/evaluations/index.ts\u003c/code\u003e). By exploiting this flaw, an authenticated user can manipulate the \u003ccode\u003eworkspaceId\u003c/code\u003e of an Evaluation entity. This manipulation is possible due to the use of \u003ccode\u003eObject.assign(entity, body)\u003c/code\u003e without proper input validation, allowing an attacker to inject arbitrary \u003ccode\u003eworkspaceId\u003c/code\u003e values into the request body. The vulnerability poses a significant risk as it enables cross-workspace data access and manipulation, potentially exposing sensitive information to unauthorized users. The root cause is similar to a previously patched vulnerability in \u003ccode\u003eDocumentStore\u003c/code\u003e (commit 840d2ae), indicating a pattern of insecure object assignment within the codebase.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAttacker authenticates to FlowiseAI as a member of workspace A, obtaining a valid session cookie or JWT.\u003c/li\u003e\n\u003cli\u003eAttacker identifies or creates an Evaluation entity within workspace A, noting its unique \u003ccode\u003eid\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAttacker obtains the \u003ccode\u003eworkspaceId\u003c/code\u003e of a target workspace B, potentially through API enumeration (e.g., \u003ccode\u003e/api/v1/workspaces\u003c/code\u003e) or by inspecting other entities\u0026rsquo; \u003ccode\u003eworkspaceId\u003c/code\u003e fields.\u003c/li\u003e\n\u003cli\u003eAttacker crafts a \u003ccode\u003ePUT\u003c/code\u003e request to the \u003ccode\u003e/api/v1/evaluations/\u0026lt;id\u0026gt;\u003c/code\u003e endpoint, using the \u003ccode\u003eid\u003c/code\u003e of the Evaluation entity from workspace A.\u003c/li\u003e\n\u003cli\u003eThe request body includes a JSON payload with the \u003ccode\u003e\u0026quot;workspaceId\u0026quot;\u003c/code\u003e field set to the \u003ccode\u003eworkspaceId\u003c/code\u003e of workspace B.\u003c/li\u003e\n\u003cli\u003eThe server\u0026rsquo;s Evaluation controller receives the request and uses \u003ccode\u003eObject.assign(updateEntity, body)\u003c/code\u003e to update the Evaluation entity. The attacker-controlled \u003ccode\u003eworkspaceId\u003c/code\u003e overwrites the existing value.\u003c/li\u003e\n\u003cli\u003eThe persistence layer commits the changes to the database, associating the Evaluation entity with workspace B.\u003c/li\u003e\n\u003cli\u003eThe Evaluation entity is now accessible to members of workspace B and inaccessible to members of workspace A, resulting in unauthorized data access and potential modification.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eThe vulnerability allows any authenticated user to move Evaluation entities between workspaces. This cross-workspace boundary violation allows an attacker to access and potentially modify evaluation runs, including captured prompts, model outputs, and scoring data, belonging to other workspaces. Successful exploitation leads to a high level of data exposure, as the attacker can exfiltrate or manipulate data that should be isolated to specific workspaces. The vulnerability affects FlowiseAI versions up to and including 3.1.1.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade FlowiseAI to the latest version, which includes the fix from PR \u003ca href=\"https://github.com/FlowiseAI/Flowise/pull/6050\"\u003ehttps://github.com/FlowiseAI/Flowise/pull/6050\u003c/a\u003e that implements an allowlist pattern for updating Evaluation entities.\u003c/li\u003e\n\u003cli\u003eDeploy the Sigma rule \u003ccode\u003eDetect FlowiseAI Evaluation WorkspaceId Manipulation\u003c/code\u003e to identify potential exploitation attempts by monitoring PUT requests to the \u003ccode\u003e/api/v1/evaluations/\u0026lt;id\u0026gt;\u003c/code\u003e endpoint with modified \u003ccode\u003eworkspaceId\u003c/code\u003e values.\u003c/li\u003e\n\u003cli\u003eImplement regression tests, as suggested in the source, to ensure that future code changes do not reintroduce the mass assignment vulnerability.\u003c/li\u003e\n\u003cli\u003eConsider implementing additional input validation on API endpoints to prevent similar mass assignment vulnerabilities in other parts of the application.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-05-14T16:23:48Z","date_published":"2026-05-14T16:23:48Z","id":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-evaluation-takeover/","summary":"FlowiseAI is vulnerable to a mass assignment vulnerability (fixed in PR 6050) that allows authenticated users to move Evaluation entities between workspaces by overwriting the `workspaceId` field via API request, leading to unauthorized data access.","title":"FlowiseAI Evaluation Cross-Workspace Data Takeover via Mass Assignment","url":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-evaluation-takeover/"},{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["flowise"],"_cs_severities":["high"],"_cs_tags":["mass-assignment","privilege-escalation","cross-workspace","flowiseai"],"_cs_type":"advisory","_cs_vendors":["FlowiseAI"],"content_html":"\u003cp\u003eA mass assignment vulnerability has been identified in FlowiseAI versions 3.1.1 and earlier. The vulnerability resides in the chatflow update endpoint, which lacks proper server-side validation and authorization checks. This allows authenticated users to manipulate server-controlled properties of chatflow objects, such as \u003ccode\u003edeployed\u003c/code\u003e, \u003ccode\u003eisPublic\u003c/code\u003e, and \u003ccode\u003eworkspaceId\u003c/code\u003e, by including them in the request body. By exploiting this flaw, an attacker can reassign chatflows to different workspaces, modify deployment settings, and alter visibility settings, potentially leading to unauthorized access and control over resources in multi-tenant environments. This vulnerability is identified as CVE-2026-42863.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eThe attacker authenticates to the FlowiseAI interface with valid credentials.\u003c/li\u003e\n\u003cli\u003eThe attacker captures a legitimate request used to update a chatflow object via the \u003ccode\u003ePUT /api/v1/chatflows/{chatflowId}\u003c/code\u003e endpoint.\u003c/li\u003e\n\u003cli\u003eThe attacker modifies the captured request body to include server-controlled fields such as \u003ccode\u003edeployed\u003c/code\u003e, \u003ccode\u003eisPublic\u003c/code\u003e, and \u003ccode\u003eworkspaceId\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe attacker sets the \u003ccode\u003eworkspaceId\u003c/code\u003e to the ID of a workspace controlled by the attacker.\u003c/li\u003e\n\u003cli\u003eThe attacker sends the crafted request to the \u003ccode\u003e/api/v1/chatflows/{chatflowId}\u003c/code\u003e endpoint.\u003c/li\u003e\n\u003cli\u003eThe FlowiseAI server accepts the modified request and updates the chatflow object in the database without proper validation.\u003c/li\u003e\n\u003cli\u003eThe chatflow is now reassigned to the attacker\u0026rsquo;s workspace, granting the attacker unauthorized access.\u003c/li\u003e\n\u003cli\u003eThe attacker can further modify the chatflow, change its visibility, or alter its deployment status.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eThe mass assignment vulnerability in FlowiseAI allows authenticated users to manipulate server-controlled attributes of chatflows. This can result in unauthorized modification of chatflow visibility, deployment state changes, and cross-workspace reassignment of chatflows. In multi-tenant environments, this vulnerability breaks tenant isolation boundaries, enabling attackers to move chatflows between workspaces without authorization. Successful exploitation can lead to cross-workspace workflow takeover, unauthorized exposure of private workflows, and manipulation of deployed agent workflows, potentially affecting all FlowiseAI installations with versions 3.1.1 or lower.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeploy the Sigma rule \u0026ldquo;Detect FlowiseAI Chatflow Mass Assignment Attempt via API\u0026rdquo; to detect attempts to modify restricted fields via the chatflow update API endpoint.\u003c/li\u003e\n\u003cli\u003eApply input validation to the \u003ccode\u003ePUT /api/v1/chatflows/{chatflowId}\u003c/code\u003e endpoint to prevent modification of \u003ccode\u003edeployed\u003c/code\u003e, \u003ccode\u003eisPublic\u003c/code\u003e, \u003ccode\u003eworkspaceId\u003c/code\u003e, \u003ccode\u003ecreatedDate\u003c/code\u003e, \u003ccode\u003eupdatedDate\u003c/code\u003e, \u003ccode\u003ecategory\u003c/code\u003e, and \u003ccode\u003etype\u003c/code\u003e parameters, mitigating CVE-2026-42863.\u003c/li\u003e\n\u003cli\u003eUpgrade FlowiseAI to a patched version that addresses the mass assignment vulnerability to prevent unauthorized modification of chatflow attributes, protecting against CVE-2026-42863.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-05-14T14:55:39Z","date_published":"2026-05-14T14:55:39Z","id":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-chatflow-mass-assignment/","summary":"A mass assignment vulnerability exists in FlowiseAI's chatflow update endpoint (CVE-2026-42863), allowing authenticated users to modify server-controlled properties like `deployed`, `isPublic`, and `workspaceId` due to missing server-side validation, leading to cross-workspace resource reassignment and unauthorized modification of deployment and visibility settings.","title":"FlowiseAI Chatflow Update Endpoint Mass Assignment Vulnerability","url":"https://feed.craftedsignal.io/briefs/2026-05-flowiseai-chatflow-mass-assignment/"}],"language":"en","title":"CraftedSignal Threat Feed — Cross-Workspace","version":"https://jsonfeed.org/version/1.1"}