CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-59FH-9F3P-7M39

GHSA-59FH-9F3P-7M39: Mass Assignment in Flowise Profile Update Endpoint

Alon Barad
Alon Barad
Software Engineer

May 21, 2026·5 min read·10 visits

Executive Summary (TL;DR)

Flowise versions prior to 3.1.2 fail to filter incoming data on the user profile update endpoint. Authenticated attackers can supply a `credential` parameter to overwrite their password hash directly, establishing persistence without knowing the current password.

A mass assignment vulnerability in the Flowise profile update endpoint allows authenticated users to directly modify their database records. By injecting the `credential` field into a `PUT` request, an attacker can overwrite their password hash, bypassing standard security controls and enabling persistent account access.

Vulnerability Overview

Flowise relies on an API endpoint located at PUT /api/v1/user to handle updates to user profile information. This endpoint correctly implements authorization checks to ensure that a user can only modify their own profile data. This specific check prevents direct insecure direct object reference (IDOR) attacks against other accounts.

However, the endpoint lacks input validation and filtering on the attributes provided in the request body. This absence of filtering leads to a mass assignment vulnerability, classified under CWE-915.

An authenticated attacker can supply arbitrary database fields within the JSON payload. The application blindly maps these fields to the underlying user entity. This allows unauthorized modification of sensitive account parameters, including the user's password hash.

Root Cause Analysis

The vulnerability originates in the request handling logic of the user controller. The application extracts the id from the request body and compares it against the authenticated session token. If the IDs match, the controller forwards the entire req.body object to the service layer without restricting the allowed keys.

Within UserService.updateUser, the application leverages the TypeORM object-relational mapper to update the database record. The application calls the merge function, passing the existing user data and the unvalidated newUserData derived directly from the HTTP request.

The Flowise user database schema utilizes a column named credential to store the bcrypt-hashed password. Because the TypeORM merge function overwrites existing entity properties with any matching keys from the input object, supplying a credential key in the JSON body modifies this secure field. The system processes the database update without executing the standard password change workflow.

Code Analysis

The vulnerable controller implementation demonstrates the missing input sanitization. The code verifies the user identity but immediately passes the raw payload to the database abstraction layer.

// Vulnerable Controller Logic
const currentUser = req.user;
const { id } = req.body;
 
if (currentUser.id !== id) {
    throw new InternalFlowiseError(StatusCodes.FORBIDDEN);
}
// req.body is passed entirely to the service
const user = await userService.updateUser(req.body);

The service layer subsequently executes the merge operation. TypeORM applies all key-value pairs from newUserData onto the oldUserData object, replacing internal attributes.

// Vulnerable Service Logic
updatedUser = queryRunner.manager.merge(User, oldUserData, newUserData);

The remediation implemented in Flowise version 3.1.2 via Pull Request #5986 introduces strict allowlisting. The controller now extracts only explicitly permitted fields, such as name and email, from the request body. Any extraneous fields like credential are discarded before the service layer invokes the database update operation.

Exploitation Methodology

Exploitation requires an active authenticated session and knowledge of the underlying database schema. The attacker first generates a valid bcrypt hash for a password they control using standard cryptographic tools.

The attacker intercepts or crafts a PUT request targeting the /api/v1/user endpoint. They inject the credential field containing the newly generated hash into the JSON payload alongside their valid user ID.

PUT /api/v1/user
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json
 
{
  "id": "<your-user-id>",
  "credential": "$2b$10$abc123examplehashvalue..."
}

Upon processing the request, the application replaces the legitimate password hash in the database. The attacker can subsequently authenticate using the new password. This technique successfully bypasses the requirement to provide the current password, finalizing account takeover without utilizing the standard credential rotation UI.

Impact Assessment

This mass assignment vulnerability facilitates persistent account compromise. If an attacker gains transient access to a user session through cross-site scripting (XSS) or API token theft, they can permanently backdoor the account by overwriting the credentials.

By overwriting the password hash directly, the attacker evades multiple security controls. The application fails to enforce password complexity policies, does not validate the old password, and fails to invalidate existing active sessions during the unauthorized credential rotation.

The CVSS v4.0 score of 5.3 reflects the specific constraints of the attack. The vulnerability requires a low-privileged authenticated session (PR:L) and specific knowledge of internal field names (AC:H). The impact is strictly isolated to the integrity of the individual user account (VI:H).

Remediation and Detection

Administrators must upgrade Flowise to version 3.1.2 or later to address this vulnerability. The updated release implements field-level allowlisting in the user update controller, preventing the mass assignment condition.

Organizations unable to apply the patch immediately can deploy Web Application Firewall (WAF) rules to inspect traffic destined for PUT /api/v1/user. WAF policies should explicitly block requests containing restricted JSON keys, specifically credential, tempToken, and status.

Development teams utilizing object mappers like TypeORM or Sequelize must avoid passing raw HTTP input directly to merge or update functions. Implementing Data Transfer Objects (DTOs) with strict validation schemas prevents mass assignment flaws by isolating the API presentation layer from internal database models.

Official Patches

FlowiseAIFix PR restricting updatable fields
FlowiseAIFlowise 3.1.2 Release Notes

Technical Appendix

CVSS Score
5.3/ 10
CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Affected Systems

Flowise PlatformNode.js API Services using TypeORM

Affected Versions Detail

Product
Affected Versions
Fixed Version
Flowise
FlowiseAI
< 3.1.23.1.2
AttributeDetail
CWE IDCWE-915
Attack VectorNetwork
CVSS v4.05.3
Privileges RequiredLow
Exploit StatusProof of Concept
AuthenticationRequired

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1098Account Manipulation
Persistence
CWE-915
Improperly Controlled Modification of Dynamically-Determined Object Attributes

The software receives input from an upstream component, but it does not restrict which attributes can be modified, allowing an attacker to overwrite internal properties.

Vulnerability Timeline

Flowise version 3.1.2 released with patch
2026-04-14
Advisory published to GitHub Advisory Database
2026-05-20

References & Sources

  • [1]GitHub Advisory: Mass Assignment in Flowise
  • [2]OSV Record GHSA-59fh-9f3p-7m39

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 8 hours ago•CVE-2026-50751
9.3

CVE-2026-50751: Authentication Bypass in Check Point Security Gateway IKEv1 Legacy Validation

An improper authentication vulnerability (CWE-287) exists in the legacy, deprecated Internet Key Exchange version 1 (IKEv1) key exchange protocol implementation in Check Point Security Gateways. The vulnerability is caused by a logic flow weakness during the certificate validation process for Remote Access VPN and Mobile Access (SSL VPN) connections. An unauthenticated remote attacker can exploit this weakness to bypass user authentication entirely, establishing a fully functional Remote Access VPN connection without a valid password.

Alon Barad
Alon Barad
47 views•6 min read
•about 22 hours ago•CVE-2026-39922
6.3

CVE-2026-39922: Server-Side Request Forgery in GeoNode Service Registration Endpoint

GeoNode versions prior to 4.4.5 and 5.0.2 are vulnerable to Server-Side Request Forgery (SSRF) in the service registration endpoint. Authenticated attackers with low privileges can exploit insufficient input validation in the Web Map Service (WMS) registration module to force the application server to make outbound network queries to loopback addresses, private RFC1918 subnets, link-local scopes, and cloud metadata endpoints. This technical report details the mechanics of the vulnerability, the underlying architectural flaw, and how to effectively remediate and mitigate the associated security risks.

Alon Barad
Alon Barad
4 views•7 min read
•1 day ago•CVE-2022-0492
7.8

CVE-2022-0492: Privilege Escalation and Container Escape via cgroups v1 release_agent

CVE-2022-0492 is a high-severity missing authorization vulnerability in the Linux kernel's Control Groups (cgroups) v1 implementation. The flaw resides within the cgroup_release_agent_write function in kernel/cgroup/cgroup-v1.c, where the kernel fails to validate if the process writing to the release_agent file possesses administrative capabilities in the initial user namespace. This allows a local attacker inside a container with root privileges (UID 0) to abuse user namespaces, mount a cgroups v1 directory, modify the release_agent parameter, and execute arbitrary commands on the host system as host root, effectively achieving a complete container escape.

Amit Schendel
Amit Schendel
12 views•7 min read
•3 days ago•GHSA-G72G-R7M4-9X4G
6.3

GHSA-G72G-R7M4-9X4G: Insufficient Session Expiration of OAuth Tokens in NocoDB

NocoDB is subject to an insufficient session expiration vulnerability where OAuth access and refresh tokens are not invalidated or revoked during security-sensitive actions such as password changes, forgot-password requests, or password resets. This allows an attacker possessing an active OAuth token to maintain unauthorized persistence.

Amit Schendel
Amit Schendel
12 views•6 min read
•3 days ago•GHSA-FGMC-2HQJ-86V4
6.9

GHSA-FGMC-2HQJ-86V4: Default Administrative Credentials in vantage6-server

A vulnerability in the vantage6 federated learning framework allows unauthenticated remote attackers to gain administrative control of the server via hardcoded default credentials (root/root) when deployed under default configurations in versions 4.2.3 and below.

Amit Schendel
Amit Schendel
8 views•5 min read
•3 days ago•GHSA-X9F6-9RVM-MMRG
6.9

GHSA-X9F6-9RVM-MMRG: Improper Access Control and Volume Mount Isolation Bypass in vantage6 Node

An improper access control vulnerability in the vantage6 node component allows concurrently running algorithm containers to read and modify sensitive input and output files of other tasks. The lack of strict workspace directory isolation exposes a significant attack surface in multi-tenant or federated environments where untrusted algorithms are executed.

Amit Schendel
Amit Schendel
4 views•4 min read