{"id":"CVE-2026-40933","summary":"Flowise: Authenticated RCE Via MCP Adapters","details":"Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.0, due to unsafe serialization of stdio commands in the MCP adapter, an authenticated attacker can add an MCP stdio server with an arbitrary command, achieving command execution. The vulnerability lies in a bug in the input sanitization from the “Custom MCP” configuration in http://localhost:3000/canvas - where any user can add a new MCP, when doing so - adding a new MCP using stdio, the user can add any command, even though your code have input sanitization checks such as validateCommandInjection and validateArgsForLocalFileAccess, and a list of predefined specific safe commands - these commands, for example \"npx\" can be combined with code execution arguments (\"-c touch /tmp/pwn\") that enable direct code execution on the underlying OS. This vulnerability is fixed in 3.1.0.","aliases":["GHSA-c9gw-hvqq-f33r"],"modified":"2026-08-07T11:31:17.098885574Z","published":"2026-04-21T21:00:35.747Z","database_specific":{"cwe_ids":["CWE-78"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40933.json","cna_assigner":"GitHub_M"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40933.json"},{"type":"ADVISORY","url":"https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-c9gw-hvqq-f33r"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-40933"},{"type":"ADVISORY","url":"https://www.ox.security/blog/mcp-supply-chain-advisory-rce-vulnerabilities-across-the-ai-ecosystem"},{"type":"ARTICLE","url":"https://www.ox.security/blog/the-mother-of-all-ai-supply-chains-critical-systemic-vulnerability-at-the-core-of-the-mcp"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/flowiseai/flowise","events":[{"introduced":"0"},{"fixed":"378d3ec3bd2d4157d6aa694bbc5ffa50c4159b97"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"3.1.0"}],"source":["AFFECTED_FIELD","CPE_RANGE"],"cpe":"cpe:2.3:a:flowiseai:flowise:*:*:*:*:*:*:*:*"}}],"versions":["pre-langchain-v1","flowise@3.0.13","flowise-ui@3.0.13","flowise-components@3.0.13","flowise@3.0.12","flowise-ui@3.0.12","flowise-components@3.0.12","flowise@3.0.11","flowise-ui@3.0.11","flowise-components@3.0.11","flowise@3.0.10","flowise-ui@3.0.10","flowise-components@3.0.10","flowise@3.0.9","flowise-ui@3.0.9","flowise-components@3.0.9","flowise@3.0.8","flowise-ui@3.0.8","flowise-components@3.0.8","flowise@3.0.7","flowise-ui@3.0.7","flowise-components@3.0.7","flowise@3.0.6","flowise-ui@3.0.6","flowise-components@3.0.6","flowise@3.0.5","flowise-ui@3.0.5","flowise-components@3.0.5","flowise@3.0.4","flowise-ui@3.0.4","flowise-components@3.0.4","flowise@3.0.3","flowise-ui@3.0.3","flowise-components@3.0.3","flowise@3.0.2","flowise-ui@3.0.2","flowise-components@3.0.2","flowise@3.0.1","flowise-ui@3.0.1","flowise-components@3.0.1","flowise@3.0.0","flowise-ui@3.0.0","flowise-components@3.0.0","flowise@2.2.8","flowise-ui@2.2.8","flowise-components@2.2.8","flowise@2.2.7-patch.1","flowise-ui@2.2.7-patch.1","flowise-components@2.2.7-patch.1","flowise@2.2.7","flowise-ui@2.2.7","flowise-components@2.2.7","flowise@2.2.6-hotfix.1","flowise@2.2.6","flowise-ui@2.2.6","flowise-components@2.2.6","flowise@2.2.5","flowise-ui@2.2.5","flowise-components@2.2.5","flowise@2.2.4","flowise-ui@2.2.4","flowise-components@2.2.4","flowise@2.2.3","flowise-ui@2.2.3","flowise-components@2.2.3","flowise@2.2.2","flowise-ui@2.2.2","flowise-components@2.2.2","flowise@2.2.1","flowise-ui@2.2.1","flowise-components@2.2.1","flowise@2.2.0","flowise-ui@2.2.0","flowise-components@2.2.0","flowise@2.1.5","flowise-ui@2.1.5","flowise-components@2.1.5","flowise@2.1.4","flowise-ui@2.1.4","flowise-components@2.1.4","flowise@2.1.3","flowise-ui@2.1.3","flowise-components@2.1.3","flowise@2.1.2","flowise-ui@2.1.2","flowise-components@2.1.2","flowise@2.1.1","flowise-ui@2.1.1","flowise-components@2.1.1","flowise@2.1.0","flowise-ui@2.1.0","flowise-components@2.1.0","flowise@2.0.7","flowise-ui@2.0.7","flowise-components@2.0.7","flowise@2.0.6","flowise-ui@2.0.6","flowise-components@2.0.6","flowise@2.0.5","flowise-ui@2.0.5","flowise-components@2.0.5","flowise@2.0.4","flowise-ui@2.0.4","flowise-components@2.0.4","flowise@2.0.3","flowise-ui@2.0.3","flowise-components@2.0.3","flowise@2.0.2","flowise-ui@2.0.2","flowise-components@2.0.2","flowise@1.8.4","flowise-ui@1.8.4","flowise-components@1.8.6","flowise@1.8.3","flowise-ui@1.8.3","flowise-components@1.8.4","flowise@1.8.2","flowise-ui@1.8.2","flowise-components@1.8.3","flowise@1.8.1","flowise-ui@1.8.1","flowise-components@1.8.1","flowise@1.8.0","flowise-ui@1.8.0","flowise-components@1.8.0","flowise@1.7.2","flowise-ui@1.7.2","flowise-components@1.7.2","flowise@1.7.1","flowise-ui@1.7.1","flowise-components@1.7.1","flowise@1.7.0","flowise-ui@1.7.0","flowise-components@1.7.0","flowise@1.6.6","flowise-ui@1.6.6","flowise-components@1.6.8","flowise@1.6.5","flowise-ui@1.6.5","flowise-components@1.6.7","flowise@1.6.4","flowise-ui@1.6.4","flowise-components@1.6.6","flowise@1.6.3","flowise-ui@1.6.3","flowise-components@1.6.5","flowise@1.6.2","flowise-ui@1.6.2","flowise-components@1.6.4","flowise@1.6.1","flowise-ui@1.6.1","flowise-components@1.6.3","flowise@1.6.0","flowise-ui@1.6.0","flowise-components@1.6.2","flowise@1.5.1","flowise-ui@1.5.1","flowise-components@1.6.1","flowise@1.5.0","flowise-ui@1.5.0","flowise-components@1.6.0","flowise@1.4.12","flowise-ui@1.4.9","flowise-components@1.5.3","flowise@1.4.11","flowise-ui@1.4.8","flowise-components@1.5.2","flowise@1.4.10","flowise-ui@1.4.7","flowise-components@1.5.1","flowise@1.4.9","flowise@1.4.8","flowise-ui@1.4.6","flowise-components@1.5.0","flowise@1.4.7","flowise-ui@1.4.5","flowise-components@1.4.9","flowise-components@1.4.8","flowise@1.4.6","flowise-ui@1.4.4","flowise-components@1.4.7","flowise@1.4.5","flowise-ui@1.4.3","flowise@1.4.4","flowise-ui@1.4.2","flowise-components@1.4.6","flowise@1.4.2","flowise-components@1.4.2","flowise@1.4.1","flowise-components@1.4.1","flowise@1.4.0","flowise-ui@1.4.0","flowise-components@1.4.0","flowise@1.3.9","flowise-ui@1.3.7","flowise-components@1.3.11","flowise-components@1.3.10","flowise@1.3.8","flowise-ui@1.3.6","flowise-components@1.3.9","flowise@1.3.7","flowise-ui@1.3.5","flowise-components@1.3.8","flowise@1.3.6","flowise-ui@1.3.4","flowise-components@1.3.7","flowise@1.3.5","flowise-ui@1.3.3","flowise-components@1.3.5","flowise@1.3.4","flowise-ui@1.3.2","flowise-components@1.3.4","flowise@1.3.3","flowise-ui@1.3.1","flowise-components@1.3.3","flowise@1.3.2","flowise-components@1.3.2","flowise@1.3.1","flowise-components@1.3.1","flowise@1.3.0","flowise-ui@1.3.0","flowise-components@1.3.0","flowise@1.2.16","flowise-ui@1.2.15","flowise-components@1.2.17","flowise@1.2.15","flowise-ui@1.2.14","flowise-components@1.2.16","flowise@1.2.14","flowise-ui@1.2.13","flowise-components@1.2.15","flowise@1.2.13","flowise-ui@1.2.12","flowise-components@1.2.14","flowise@1.2.11","flowise-ui@1.2.10","flowise-components@1.2.12","flowise@1.2.9","flowise-components@1.2.10","flowise@1.2.8","flowise-ui@1.2.7","flowise-components@1.2.9","flowise@1.2.7","flowise-ui@1.2.6","flowise-components@1.2.8","flowise@1.2.6","flowise-ui@1.2.5","flowise-components@1.2.7","flowise@1.2.5","flowise-ui@1.2.4","flowise-components@1.2.6","flowise@1.2.4","flowise-ui@1.2.3","flowise-components@1.2.5","flowise@1.2.3","flowise-ui@1.2.2","flowise-components@1.2.4","flowise-components@1.2.3","flowise@1.2.2","flowise-ui@1.2.1","flowise-components@1.2.2","flowise@1.2.1","flowise-ui@1.2.0","flowise-components@1.2.1","flowise@1.1.1","flowise-components@1.1.1","flowise@1.1.0","flowise-ui@1.1.0","flowise-components@1.1.0","flowise@1.0.1","flowise@1.0.0","flowise-ui@1.0.0","flowise-components@1.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-40933.json"}}],"schema_version":"1.8.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H"}]}