Flowise CustomMCP JS Eval Endpoint Exposed
flowise-custommcp-js-eval-exposed is a critical severity check in the
ai category, written in yaml.
Its source is templates/ai/flowise/flowise-custommcp-js-eval-exposed.yaml in
cert-x-gen-templates.
What it checks
Section titled “What it checks”Detects an exposed Flowise CustomMCP endpoint that evaluates user-supplied mcpServerConfig strings. Vulnerable Flowise versions evaluate the string via Function(’return ’ + input)(), enabling remote code execution (CVE-2025-59528).
Header
Section titled “Header”| Field | Value |
|---|---|
| Id | flowise-custommcp-js-eval-exposed |
| Severity | critical |
| Language | yaml |
| Category | ai |
| Author | CERT-X-GEN Security Team |
| Template version | 1.0.0 |
| Confidence | 85 |
| CVSS | 9.8 |
| Weakness | CWE-94, CWE-306 |
| Tags | flowise, mcp, custommcp, rce, deserialization, eval, cve-2025-59528 |
| Target kind | not recorded |
| Oracle | not recorded |
The file declares cve_ids, http, remediation as well. Those are not tabled above; read the
source for what they carry.
References
Section titled “References”Declared in the header. cxg parses @references and then discards it, and
nothing at scan time reads it, so this is the only place the links a
template cites are surfaced.
- https://github.com/advisories/GHSA-3gcm-f6qx-ff7p
- https://research.jfrog.com/vulnerabilities/flowise-os-command-remote-code-execution-jfsa-2025-001380578
Run it
Section titled “Run it”To see what the copy on your machine says about itself, and to confirm it is installed at all:
cxg template info flowise-custommcp-js-eval-exposedThe id it prints is the one to pass anywhere a template is selected. See
cxg template for the rest of
the subcommand, Scan a target for running
a scan, and
A match is not a finding for how
to read what comes back.
Related
Section titled “Related”- Template catalog is the whole corpus.
- ai is the rest of this category.
- Templates by weakness class groups checks by the defect they look for.
- Contribute a template is the route from a check you needed and could not find to a merged one.

