Flowise
CVE-2025-50538
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAccess public Flowise chat agent
-
DeliverySubmit message with iframe srcdoc payload
-
ExploitPayload stored in chat log
-
InstallAdmin opens 'View Messages'
-
C2Script executes in admin browser
-
ExecuteExfiltrate localStorage to attacker webhook
-
ImpactAdmin session takeover
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires (1) a Flowise instance whose chat/agent interface is reachable by the attacker (e.g. embedded on a website or otherwise publicly accessible) so an unauthenticated user can submit chat messages, and (2) an administrator subsequently opening the stored conversation via the 'View Messages' button in the workflow UI, which renders unsanitized message data through dangerouslySetInnerHTML. The specific trigger is an HTML payload such as <iframe srcdoc="<script>...</script>"> stored as a chat message. Limiting factors: the attack is not self-executing - it depends on admin user interaction (UI:R) to fire, and impact centers on theft of whatever is in the admin's browser localStorage (session tokens/credentials). No attacker authentication is required (PR:N). Affected versions are Flowise prior to the patched release (cited as 3.0.5 by the release reference; GHSA also cites 3.0.8 - confirm before remediation). |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N = 6.1) describes a classic stored XSS: network-reachable, low complexity, no privileges for the attacker (an anonymous end user of the chatbot injects the payload), but requiring user interaction (an admin must open 'View Messages'). The GHSA advisory confirms this is STORED XSS with a concrete credential-theft impact (localStorage exfiltration → potential admin account takeover), which arguably justifies confidentiality/integrity higher than the C:L/I:L used by the CVSS provider. The most notable signal is the EPSS score of 14.04% at the 96th percentile - very high for a medium-severity XSS - combined with publicly available exploit code (the GHSA advisory includes a working iframe srcdoc PoC) and an available vendor patch. This is NOT a high-CVSS-but-low-real-risk case; the reverse applies - a moderate 6.1 base score understates operational risk because the exploit is public, trivially weaponizable, and the payoff (admin panel/session compromise) is high. It is NOT on CISA KEV, so there is no confirmed active exploitation; the elevated EPSS plus public PoC indicate opportunistic exploitation is plausible rather than proven. Note a data conflict to verify: the description and release reference cite 'before 3.0.5', while the GHSA text lists 'affected < 2.2.7' and separately 'vulnerable < 3.0.8 / fixed in 3.0.8' - confirm the actual patched release (PR #4905 landed the DOMPurify/SafeHTML fix). |
| Exploit ScenarioDerived | An attacker interacts with a publicly exposed Flowise chatbot/agent and sends a chat message containing an <iframe srcdoc="..."> payload with embedded JavaScript (no authentication needed to chat). The message is stored; when an administrator later opens the conversation via the 'View Messages' button in the workflow UI, the script executes in the admin's browser context, exfiltrating localStorage (session tokens/credentials) to an attacker-controlled webhook. A working PoC is published in the GHSA advisory, and CVSS UI:R confirms the attack hinges on the admin viewing the log. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Stored cross-site scripting in FlowiseAI Flowise lets an unauthenticated user of a publicly reachable chatbot/agent interface inject a malicious HTML payload - for example an <iframe srcdoc> containing JavaScript - that is persisted as a chat message and later executed in an administrator's browser when the admin opens the conversation via the 'View Messages' button. Successful exploitation exposes the admin's localStorage (session tokens and credentials), enabling account takeover and full compromise of the Flowise admin panel; the attack is not self-executing and depends on admin user interaction to fire. Publicly available exploit code exists, and the EPSS score of 14.04% (96th percentile) reflects elevated real-world interest, although there is no CISA KEV confirmation of active exploitation.
RemediationAI
Upgrade Flowise to a patched release - ideally 3.0.8, the version cited by the GHSA and package data, since the description's 3.0.5 reference may not fully cover the fix boundary - and verify the deployed bundle includes the SafeHTML/DOMPurify sanitization from PR 4905 (https://github.com/FlowiseAI/Flowise/pull/4905, commit 9a06a85a8ddcbaeca1342827a5fea9087a587d97) and the 3.0.5 release (https://github.com/FlowiseAI/Flowise/releases/tag/flowise%403.0.5); see the advisory at https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-964p-j4gg-mhwc. If immediate upgrade is not possible, reduce exposure by restricting who can reach the agent/chat interface so anonymous users cannot submit stored messages (this breaks public chatbot embedding, the primary use case), by placing the admin UI behind authentication and network restrictions such as IP allow-listing or a VPN so that only trusted administrators can open 'View Messages' (this limits but does not eliminate risk if a lower-privileged admin account is phished), and by clearing or reviewing stored conversation history before patching so pre-existing malicious payloads are not preserved and re-triggered. Also consider shortening admin session lifetimes and reviewing localStorage-stored tokens, since the demonstrated payload targets localStorage contents for exfiltration. Vendor-released patch: versions up to 3.0.5/3.0.8 per the referenced release and GHSA data.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation / Cross-Site Scripting). Flowise's admin UI rendered stored chat message data directly into the DOM through React's dangerouslySetInnerHTML inside the ViewMessagesDialog component (packages/ui/src/ui-component/dialog/ViewMessagesDialog.jsx), so any HTML - including scripting vectors such as <iframe srcdoc="<script>...</script>"> - was interpreted rather than displayed as text. Because the payload is submitted through the agent/chat input and persisted server-side, it becomes a stored (persistent) XSS that executes in the privileged context of whichever administrator subsequently views the message log, in line with the assessed vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N. The fix (PR 4905) introduces a DOMPurify dependency (^3.2.6) and a new SafeHTML component that sanitizes message content before rendering, and also reworks the JSON viewer to build escaped React elements instead of injecting raw HTML, eliminating the unsafe injection sink. Affected code is the npm package 'flowise' (CPE cpe:2.3:a:flowiseai:flowise), i.e. the Flowise server/UI bundle exposed to end users via the chatbot interface.
Know when Flowise gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Anonymous attacker injects via chat (PR:N) but an admin must view the log (UI:R); script runs in the admin's browser across a trust boundary (S:C); standard stored-XSS C:L/I:L, though localStorage credential theft could push confidentiality higher.
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
Flowise before 3.0.5 allows XSS via an IFRAME element when an admin views the chat log.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Affected Products (CPE)NVD
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Flowise versions before 3.0.1 allow unauthenticated access to the Custom MCPs feature, which is designed to execute OS c
FlowiseAI Flowise version 2.2.6 contains an arbitrary file upload vulnerability in the /api/v1/attachments endpoint. Una
Arbitrary file read and write in Flowise versions prior to 3.0.8 allows an authenticated attacker with access to the flo
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Flowise is a drag & drop user interface to build a customized large language model flow. Rated critical severity (CVSS 9
Authenticated users can upload arbitrary files to Flowise 3.0.7 due to missing validation, enabling persistent storage o
Unrestricted file upload in Flowise LLM workflow builder before 3.0.13 via /api/v1/attachments endpoint allows unauthent
Missing authentication on NVD data endpoint in Flowise before 3.0.13 allows unauthenticated access to internal vulnerabi
Authenticated remote code execution in FlowiseAI Flowise (v3.0.1 up to but not including 3.0.8, and later versions when
Remote code execution in Flowise before 3.1.3 arises because its Pyodide Python-code validator (validatePythonCodeForDat
Remote code execution in FlowiseAI Flowise before 3.1.3 lets an attacker execute arbitrary OS commands as the Flowise pr
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB