{"id":7746,"date":"2026-04-08T12:24:30","date_gmt":"2026-04-08T12:24:30","guid":{"rendered":"https:\/\/cybersecurityinfocus.com\/?p=7746"},"modified":"2026-04-08T12:24:30","modified_gmt":"2026-04-08T12:24:30","slug":"hackers-exploit-a-critical-flowise-flaw-affecting-thousands-of-ai-workflows","status":"publish","type":"post","link":"https:\/\/cybersecurityinfocus.com\/?p=7746","title":{"rendered":"Hackers exploit a critical Flowise flaw affecting thousands of AI workflows"},"content":{"rendered":"<div>\n<div class=\"grid grid--cols-10@md grid--cols-8@lg article-column\">\n<div class=\"col-12 col-10@md col-6@lg col-start-3@lg\">\n<div class=\"article-column__content\">\n<div class=\"container\"><\/div>\n<p>Threat actors have found a way to inject arbitrary JavaScript into the Flowise low-code platform for building custom LLM and agentic systems.<\/p>\n<p>The code injection was possible due to a design oversight, rated at max-severity, in the platform\u2019s custom MCP node, which acts as a plug-in connector for an application\u2019s AI agent to talk to external tools via MCP servers.<\/p>\n<p>According to a recent VulnCheck alert, hackers have already started exploiting the flaw to insert malicious JavaScript code, with analysis showing close to 15000 Flowise instances exposed on the public internet.<\/p>\n<p>The flaw was patched in the AI development platform\u2019s version 3.0.6, the latest rollout being v 3.1.1, <a href=\"https:\/\/github.com\/FlowiseAI\/Flowise\/releases\" target=\"_blank\" rel=\"noopener\">released<\/a> last month.<\/p>\n<h2 class=\"wp-block-heading\"><a><\/a>Improper validation of MCP configurations<\/h2>\n<p>Flowise is a drag-and-drop service to build a customized large language model (LLM) flow. It allows users to drag the Custom MCP node into their workflows and paste necessary configurations (JSON) to point to an external <a href=\"https:\/\/www.csoonline.com\/article\/4087656\/what-cisos-need-to-know-about-new-tools-for-securing-mcp-servers.html\">MCP server<\/a>.<\/p>\n<p>The Custom MCP node that lets the application connect to any external MCP server using user-supplied configurations is where the problem lies. In version 3.0.5, these configurations are not properly validated against malicious code, allowing remote code execution.<\/p>\n<p>\u201cThis node parses the user-provided mcpServerConfig string to build the MCP server configuration,\u201d reads an NVD <a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-59528\">description<\/a> of the flaw. \u201cHowever, during this process, it executes JavaScript code without any security validation. Specifically, inside the convertToValidJSONString function, user input is directly passed to the Function() constructor, which evaluates and executes the input as JavaScript code.\u201d<\/p>\n<p>As the named function runs with full Node.js runtime privileges, \u201cit can access dangerous modules such as child_process and fs,\u201d the description adds.<\/p>\n<p>The flaw is tracked under <a href=\"https:\/\/github.com\/FlowiseAI\/Flowise\/security\/advisories\/GHSA-3gcm-f6qx-ff7p\" target=\"_blank\" rel=\"noopener\">CVE-2025-59528<\/a>, and was assigned a critical rating of CVSS 10.0 at the time of disclosure in September, 2025. The flaw was categorized under \u201cImproper Control of Generation of Code (code Injection).\u201d<\/p>\n<h2 class=\"wp-block-heading\"><a><\/a>Hackers exploit unpatched instances<\/h2>\n<p>While a patch has been available for months, a recent VulnCheck finding places the first in-the-wild exploitation on April 6. Caitlin Condon, VP of Security Research at the vulnerability intelligence company, warned of the abuse through a LinkedIn <a href=\"https:\/\/www.linkedin.com\/feed\/update\/urn:li:activity:7446686314562850817\/\" target=\"_blank\" rel=\"noopener\">post<\/a>.<\/p>\n<p>\u201cEarly this morning, VulnCheck\u2019s Canary network began detecting first-time exploitation of CVE-2025-59528, an arbitrary JavaScript code injection vulnerability in Flowise,\u201d she wrote. \u201cObserved activity so far originates from a single Starlink IP.\u201d Around 12000 to 15000 instances remained exposed at the time, she noted in her post, although it is unclear how many of them were running a vulnerable Flowise version.<\/p>\n<p>Condon added two more critical Flowise vulnerabilities, a missing authentication (<a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-8943\" target=\"_blank\" rel=\"noopener\">CVE-2025-8943<\/a>) and an arbitrary file upload (<a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-26319\" target=\"_blank\" rel=\"noopener\">CVE-2025-26319<\/a>), in the post that she said were also flagged against active exploitation by the Canary network. Exclusive exploitation details, including full payload and request data, were promised to the Canary Intelligence customers. Additionally, an exploit, PCAP, YARA rule, network signatures, and target Docker container have been available to its Initial Access Intelligence customers.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Threat actors have found a way to inject arbitrary JavaScript into the Flowise low-code platform for building custom LLM and agentic systems. The code injection was possible due to a design oversight, rated at max-severity, in the platform\u2019s custom MCP node, which acts as a plug-in connector for an application\u2019s AI agent to talk to [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":7747,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-7746","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-education"],"_links":{"self":[{"href":"https:\/\/cybersecurityinfocus.com\/index.php?rest_route=\/wp\/v2\/posts\/7746"}],"collection":[{"href":"https:\/\/cybersecurityinfocus.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cybersecurityinfocus.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/cybersecurityinfocus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7746"}],"version-history":[{"count":0,"href":"https:\/\/cybersecurityinfocus.com\/index.php?rest_route=\/wp\/v2\/posts\/7746\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cybersecurityinfocus.com\/index.php?rest_route=\/wp\/v2\/media\/7747"}],"wp:attachment":[{"href":"https:\/\/cybersecurityinfocus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cybersecurityinfocus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cybersecurityinfocus.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}