Aug 4, 2026·5 min read·6 visits
An unauthenticated property injection vulnerability in Flowise (< 3.1.3) allows remote attackers to overwrite critical workflow parameters, facilitating session hijacking and prompt injection.
CVE-2026-69258 is a high-severity property injection and unauthenticated authorization bypass vulnerability in Flowise, a drag-and-drop orchestration interface for building customized LLM workflows. In affected versions prior to 3.1.3, the unauthenticated prediction API endpoint (`POST /api/v1/prediction/:id`) processed client-controlled parameters inside an `overrideConfig` payload without authorization checks. The backend unconditionally spread this object into internal context structures, enabling unauthenticated remote attackers to overwrite critical session values, pollute execution contexts, and bypass flow restrictions.
Flowise is an open-source low-code platform designed to orchestrate Large Language Model (LLM) workflows. The system maps distinct nodes representing agents, vector stores, prompt templates, and chat memory states into unified directed graphs. To facilitate real-time interactions, the server exposes public endpoints, including the prediction API route located at POST /api/v1/prediction/:id.
This endpoint accepts a runtime payload, which can include an optional overrideConfig object. The purpose of overrideConfig is to adjust runtime execution arguments for specific workflow elements. However, in vulnerable configurations, the application accepts and processes these parameters without validating authorization states.
The unauthenticated prediction endpoint merges incoming configuration overrides directly into the execution context. An attacker can manipulate this behavior to inject arbitrary properties, leading to CWE-915 (Improperly Controlled Modification of Dynamically-Determined Object Attributes) and CWE-639 (Authorization Bypass Through User-Controlled Key).
The root cause of this vulnerability lies in the unsafe application of the ES6 spread operator (...) to unsanitized, user-supplied JSON objects. In JavaScript, when properties are merged using the spread operator, any key-value pairs matching existing properties will silently overwrite the previous declarations.
The Flowise backend executed this spread operation when constructing execution contexts within three major modules: buildAgentflow.ts, buildChatflow.ts, and utils/index.ts. Because the application failed to implement validation checks or schema enforcement before merging, incoming variables received priority.
Specifically, the application skipped validating the apiOverrideStatus parameter, which is intended to check if overrides are permitted on the active flow. This omission allowed any unauthenticated attacker to inject conflicting variables—such as sessionId or chatHistory—into the active memory configuration, causing the server to process arbitrary falsified data.
The vulnerability is localized to several core orchestration helper files where internal execution state objects are instantiated. In packages/server/src/utils/buildChatflow.ts, the context mapping occurred as follows:
// Vulnerable context construction in buildChatflow.ts
const flowData: ICommonObject = {
chatId,
sessionId,
chatHistory,
apiMessageId,
...incomingInput.overrideConfig // Vulnerable spread
}A similar implementation error existed in packages/server/src/utils/buildAgentflow.ts and packages/server/src/utils/index.ts where arbitrary fields from the client-side overrideConfig were directly spread into state configurations:
// Vulnerable state merge in buildAgentflow.ts
const flowConfig = {
apiMessageId,
chatHistory,
runtimeChatHistoryLength: Math.max(0, runtimeChatHistory.length - 1),
state: updatedState,
...overrideConfig // Vulnerable spread
}The fix, introduced in commit 23b997ee5ef9e269b628bad0f56f1ecb86bd2fca, removes the spread operators completely. The variables are now defined strictly and statically:
// Patched context construction in buildChatflow.ts
const flowData: ICommonObject = {
chatId,
sessionId,
chatHistory,
apiMessageId
}By enforcing static key assignment, the application completely blocks unvalidated client-provided inputs from modifying administrative context values. Variable overrides are now restricted to authorized workflow nodes and verified via the internal replaceInputsWithConfig() utility.
Exploiting this flaw requires no authentication. The attacker only needs network access to the Flowise server and the target flow identifier. The flow identifier is frequently exposed in client-side integrations, such as public chat widgets.
An attacker constructs a HTTP POST request to /api/v1/prediction/:id. Inside the payload, the attacker defines the overrideConfig block, populating it with values that conflict with the server's internal state. For example, injecting a falsified array of messages into the chatHistory parameter tricks the target LLM model into executing commands based on synthetic conversational turns.
This mechanism allows attackers to mock previous user confirmations, bypass security check-loops, or supply synthetic authorization contexts. This technique alters the conversational history and misleads the LLM into generating unauthorized responses.
The impact of CVE-2026-69258 is substantial due to its threat to system data integrity. By hijacking active sessionId parameters, attackers can cross the boundary of session isolation. This enables them to access, pollute, or hijack conversations belonging to other active users on the platform.
Furthermore, the injection of custom properties inside the $flow.* namespace allows manipulation of execution variables. If the underlying flow contains nodes designed to run SQL queries, make external webhook requests, or call API integrations, attackers can alter the query structures or destination URLs by modifying template variables.
While this vulnerability does not directly yield OS-level remote code execution, the ability to bypass application logical security barriers, manipulate prompt histories, and corrupt administrative routing data merits its High CVSS rating of 8.8.
To resolve this vulnerability, deploy the security update to Flowise version 3.1.3 or higher. Administrators can upgrade standard installations using the NPM package manager or by pulling the corrected Docker container image from the official repository.
# Upgrade standard Flowise deployment
npm install -g flowise@latest
# Or pull latest Docker image
docker pull flowiseai/flowise:3.1.3If patching cannot be performed immediately, employ a Web Application Firewall (WAF) to inspect traffic directed to /api/v1/prediction/. Configure a rule to inspect incoming JSON bodies and block requests containing the overrideConfig key when paired with unauthorized internal parameter keys.
Network administrators can also deploy a Suricata or Snort signature to detect active exploitation attempts at the boundaries of the network by inspecting prediction payload strings.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N| Product | Affected Versions | Fixed Version |
|---|---|---|
Flowise FlowiseAI | < 3.1.3 | 3.1.3 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-915 / CWE-639 |
| Attack Vector | Network |
| CVSS v4.0 Score | 8.8 |
| Vulnerability Class | Property Injection / Authorization Bypass |
| Exploit Status | Proof-of-Concept Available |
| Remediation | Upgrade to v3.1.3 or higher |
The product initializes or populates an object with user-controlled input, allowing the user to modify properties of the object that should not be directly modifiable.
An incomplete credential redaction mechanism in Flowise allows authenticated users with standard view permissions to retrieve sensitive decrypted third-party credentials in plaintext.
CVE-2026-69262 is a high-severity incorrect authorization vulnerability (CWE-863) within the Flowise drag-and-drop LLM flow platform. Prior to version 3.1.3, Flowise did not enforce resource-type validation on its deletion endpoint. Although routing middleware ensured users held deletion privileges for either chatflows or agentflows, the service level lacked validation checks to verify whether the target resource matched the user's specific permissions. Consequently, an authenticated user with only agentflow deletion permissions could delete arbitrary chatflow configurations, leading to unauthorized state modification and service disruption.
CVE-2026-69252 represents a missing authorization check (CWE-862) in the files API route (`/api/v1/files`) of Flowise, a drag-and-drop user interface for building LLM flows. Prior to version 3.1.3, an authenticated API key or user could list, access, and delete files across arbitrary workspaces inside an organization, completely bypassing workspace logical boundaries.
A comprehensive technical analysis of CVE-2026-45584, a high-severity heap-based buffer overflow in Microsoft Defender's QEX parsing logic. The vulnerability resides within mpengine.dll and allows unauthenticated remote code execution or denial of service when processing crafted archives designed to trigger threat remediation and QEX history logging.
A medium-severity vulnerability in Undici's retry interceptor causes body-length mismatches with the Content-Length header during HTTP 206 response resumption. Forwarding these inconsistent headers downstream leads to HTTP response desynchronization, connection hangs, or potential protocol smuggling.
CVE-2026-16729 (GHSA-v3r7-h72x-cjcm) is a medium-severity cookie attribute injection vulnerability in Undici's web-compliant cookie utility module. Due to insufficient validation of domain parameters and raw attributes in the unparsed options array, arbitrary attributes like SameSite, HttpOnly, and Secure can be injected. This allows attackers to bypass CSRF protections, strip security flags, or override intended cookie behaviors when applications pass user-controlled values to these properties.