CVE-2026-30821
Published: 07 March 2026
Description
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to version 3.0.13, the /api/v1/attachments/:chatflowId/:chatId endpoint is listed in WHITELIST_URLS, allowing unauthenticated access to the file upload API. While the server validates uploads…
more
based on the MIME types defined in chatbotConfig.fullFileUpload.allowedUploadFileTypes, it implicitly trusts the client-provided Content-Type header (file.mimetype) without verifying the file's actual content (magic bytes) or extension (file.originalname). Consequently, an attacker can bypass this restriction by spoofing the Content-Type as a permitted type (e.g., application/pdf) while uploading malicious scripts or arbitrary files. Once uploaded via addArrayFilesToStorage, these files persist in backend storage (S3, GCS, or local disk). This vulnerability serves as a critical entry point that, when chained with other features like static hosting or file retrieval, can lead to Stored XSS, malicious file hosting, or Remote Code Execution (RCE). This issue has been patched in version 3.0.13.
Mitigating Controls (NIST 800-53 r5)AI
Requires validating the actual content of uploaded files using magic bytes or similar checks to prevent bypassing MIME type restrictions via spoofing.
Enforces approved authorizations to block unauthenticated access to the whitelisted file upload endpoint.
Explicitly authorizes and limits specific actions like file uploads that are permitted without identification or authentication.
Security SummaryAI
CVE-2026-30821 is an unrestricted file upload vulnerability (CWE-434) in Flowise, an open-source drag-and-drop user interface for building customized large language model flows. In versions prior to 3.0.13, the /api/v1/attachments/:chatflowId/:chatId endpoint is whitelisted for unauthenticated access, enabling file uploads. Although the server checks MIME types against those defined in chatbotConfig.fullFileUpload.allowedUploadFileTypes, it trusts the client-supplied Content-Type header (file.mimetype) without validating the file's actual content via magic bytes or its extension (file.originalname). This allows attackers to spoof permitted types, such as application/pdf, and upload malicious scripts or arbitrary files, which are then persisted in backend storage via addArrayFilesToStorage, including S3, GCS, or local disk.
Unauthenticated remote attackers can exploit this vulnerability over the network with low complexity and no privileges required, as indicated by its CVSS v3.1 base score of 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). Successful exploitation enables uploading arbitrary files that persist in storage, serving as an entry point for chained attacks such as Stored XSS via file retrieval features, malicious file hosting through static serving, or Remote Code Execution depending on the environment and subsequent interactions.
Flowise has addressed this issue in version 3.0.13. Security advisories recommend upgrading to this patched version to mitigate the vulnerability. Additional details are available in the GitHub security advisory at https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-j8g8-j7fc-43v6 and release notes at https://github.com/FlowiseAI/Flowise/releases/tag/flowise%403.0.13.
Details
- CWE(s)
Affected Products
AI Security AnalysisAI
- AI Category
- Other AI Platforms
- Risk Domain
- N/A
- OWASP Top 10 for LLMs 2025
- None mapped
- MITRE ATLAS Techniques
- None mapped
- Classification Reason
- Matched keywords: large language model
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
Unrestricted unauthenticated file upload in public-facing web app enables exploitation (T1190), web shell deployment via static serving (T1505.003), and malware staging in backend storage (T1608.001).