GHSA-7rgr-72hp-9wp3: Duplicate Advisory: Flowise is vulnerable to stored XSS via "View Messages" allows credential theft in FlowiseAI admin panel
8.2
CVSS Score
3.1
Basic Information
CVE ID
-
GHSA ID
EPSS Score
-
CWE
Published
10/6/2025
Updated
10/8/2025
KEV Status
No
Technology
JavaScript
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| flowise | npm | < 3.0.5 | 3.0.5 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability is a classic stored Cross-Site Scripting (XSS) issue within the Flowise admin panel. The root cause is the use of React's dangerouslySetInnerHTML property to render HTML content from user-provided data without proper sanitization. This was identified in multiple UI components:
ViewMessagesDialog: This is the primary component mentioned in the advisory's title ("View Messages"). It rendered chat messages of type 'html' directly into the DOM.ChatMessage: A similar component for displaying individual chat messages, also usingdangerouslySetInnerHTML.NodeExecutionDetails: This component, used for displaying details of an agent's execution, also rendered artifact data directly as HTML.JSONViewer: This component useddangerouslySetInnerHTMLto render syntax-highlighted JSON, which could be manipulated to include malicious HTML.
The patch addresses this by introducing a new SafeHTML component. This component uses the DOMPurify library to sanitize the HTML content, removing any potentially malicious elements like <script> tags and on* event handlers, before rendering it. By replacing all instances of dangerouslySetInnerHTML with this new safe component, the XSS vulnerability is mitigated across the application.
Vulnerable functions
ViewMessagesDialogpackages/ui/src/ui-component/dialog/ViewMessagesDialog.jsx
The `ViewMessagesDialog` component directly rendered HTML content from `item.data` using `dangerouslySetInnerHTML`. This allows an attacker to inject malicious scripts that will be executed when a user views the message, leading to a stored Cross-Site Scripting (XSS) vulnerability.
NodeExecutionDetailspackages/ui/src/views/agentexecutions/NodeExecutionDetails.jsx
The `NodeExecutionDetails` component rendered HTML from `artifact.data` using `dangerouslySetInnerHTML` without sanitization. This could allow an attacker to execute arbitrary scripts in the context of the user's browser.
ChatMessagepackages/ui/src/views/chatmessage/ChatMessage.jsx
The `ChatMessage` component was vulnerable to XSS because it used `dangerouslySetInnerHTML` to render HTML content from `item.data`. This allows for the injection and execution of malicious scripts.
JSONViewerpackages/ui/src/ui-component/json/JsonViewer.jsx
The `JSONViewer` component used `dangerouslySetInnerHTML` in conjunction with a `syntaxHighlight` function to display formatted JSON. Although the `syntaxHighlight` function performed some escaping, it was insufficient to prevent all XSS attack vectors. The patch replaced this with a safer method of building React elements.