Flowise is vulnerable to arbitrary file exposure through its ReadFileTool
High7.7Published Oct 10, 2025 · updated Feb 4, 2026
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| flowise npm | < 3.0.8 | 3.0.8 |
Details and references
### Summary The ReadFileTool in Flowise does not restrict file path access, allowing authenticated attackers to exploit this vulnerability to read arbitrary files from the file system, potentially leading to remote command execution. ### Details Flowise supports providing ReadFileTool for large models to read files in the server's file system. The implementation of this tool is located at packages/components/nodes/tools/ReadFile/ReadFile.ts. ``` /** * Class for reading files from the disk. Extends the StructuredTool * class. */ export class ReadFileTool extends StructuredTool { static lc_name() { return 'ReadFileTool' } schema = z.object({ file_path: z.string().describe('name of file') }) as any name = 'read_file' description = 'Read file from disk' store: BaseFileStore constructor({ store }: ReadFileParams) { super(...arguments) this.store = store } async _call({ file_path }: z.infer<typeof this.schema>) { return await this.store.readFile(file_path) } } ``` The tool directly uses the file_path parameter passed to it without verifying whether the path belongs to Flowise's working directory. Authenticated attackers can exploit this vulnerability to read any known file on the server. For example, if the victim deploys in a Docker environment, the attacker could attempt to read sensitive files such as /root/.flowise/encryption.key, /root/.flowise/database.sqlite, and obtain sensitive information. If the victim does not use a Docker environment for deployment, the attacker could try reading sensitive files like /etc/passwd, /etc/shadow, /root/.ssh/id_rsa, further achieving the effect of remote command execution. ### PoC This file reading vulnerability has been verified to exist in the latest Flowise Docker image (https://hub.docker.com/layers/flowiseai/flowise/latest/images/sha256-26300377397818a451e0710389eb77615256b0f3ecc895194850ab35dda3ae7b). The reproduction steps are as follows: 1. Pull the Flowise Docker image ``` docker pull flowiseai/flowise ``` 2. Start the Flowise service ``` docker run -d --name flowise -p 3000:3000 flowise ``` 3. Access the Flowise service at server ip:3000 in the browser and register an account 4. Save the following content as agent.json ``` { "nodes": [ { "id": "startAgentflow_0", "type": "agentFlow", "position": { "x": -203, "y": 37 }, "data": { "id": "startAgentflow_0", "label": "Start", "version": 1.1, "name": "startAgentflow", "type": "Start", "color": "#7EE787", "hideInput": true, "baseClasses": [ "Start" ], "category": "Agent Flows", "description": "Starting point of the agentflow", "inputParams": [ { "label": "Input Type", "name": "startInputType", "type": "options", "options": [ { "label": "Chat Input", "name": "chatInput", "description": "Start the conversation with chat input" }, { "label": "Form Input", "name": "formInput", "description": "Start the workflow with form inputs" } ], "default": "chatInput", "id": "startAgentflow_0-input-startInputType-options", "display": true }, { "label": "Form Title", "name": "formTitle", "type": "string", "placeholder": "Please Fill Out The Form", "show": { "startInputType": "formInput" }, "id": "startAgentflow_0-input-formTitle-string", "display": false }, { "label": "Form Description", "name": "formDescription", "type": "string", "placeholder
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-22
- github.com/FlowiseAI/Flowise/security/advisories/GHSA-j44m-5v8f-gc9c
- github.com/FlowiseAI/Flowise/security/advisories/GHSA-jv9m-vf54-chjj
- nvd.nist.gov/vuln/detail/CVE-2025-61913
- github.com/FlowiseAI/Flowise/commit/1fb12cd93143592a18995f63b781d25b354d48a3
- github.com/FlowiseAI/Flowise
- github.com/FlowiseAI/Flowise/releases/tag/flowise%403.0.8
More Flowise advisories
All Flowise| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Oct 92025 | Flowise is vulnerable to arbitrary file write through its WriteFileTool CVE-2025-61913Critical9.9fixed in 3.0.8 | Critical9.9 | 3.0.8 |
| Oct 82025 | FlowiseAI/Flosise has File Upload vulnerability CVE-2025-61687High8.3fixed in 3.0.8 | High8.3 | 3.0.8 |
| Oct 62025 | Flowise vulnerable to RCE via Dynamic function constructor injection CVE-2025-55346Critical9.8no fix yet | Critical9.8 | No fix yet |
| Oct 142025 | Flowise: Authenticated Command Execution and Sandbox Bypass via Puppeteer and Playwright Packages CVE-2025-34267Highfixed in 3.0.8 | High | 3.0.8 |
| Oct 32025 | Flowise Stored XSS vulnerability through logs in chatbot CVE-2025-29192Medium5.3fixed in 3.0.5 | Medium5.3 | 3.0.5 |
| Oct 32025 | Flowise is vulnerable to stored XSS via "View Messages" allows credential theft in FlowiseAI admin panel CVE-2025-50538Critical9.3fixed in 3.0.8 | Critical9.3 | 3.0.8 |