The vulnerability is a classic mass assignment issue within the FlowiseAI backend, specifically in the service-layer functions responsible for creating and updating 'Assistant' resources. The root cause was the application's use of Object.assign(entity, requestBody), which blindly copies all properties from the user-controlled request body into the database entity. This allowed authenticated users to overwrite server-controlled fields, such as workspaceId, createdDate, and updatedDate, by simply adding them to the JSON body of a PUT /api/v1/assistants/{assistantId} request.
The patch, identified in commit faa571c961ee0ebe6fb9f4d060beb54e293ad39b, addresses this by introducing a stripProtectedFields utility function. This function acts as a denylist, creating a sanitized copy of the request body with all protected fields removed before the Object.assign operation is performed. This ensures that critical metadata remains under server control, mitigating the risk of cross-workspace data manipulation and other unauthorized modifications. The vulnerable functions, createAssistant and updateAssistant in packages/server/src/services/assistants/index.ts, were both patched to use this new sanitization function, effectively closing the vulnerability for both resource creation and updates.