<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Nodevm — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/nodevm/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 14 May 2026 14:59:44 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/nodevm/feed.xml" rel="self" type="application/rss+xml"/><item><title>FlowiseAI Authenticated Remote Code Execution via NodeVM Sandbox Escape</title><link>https://feed.craftedsignal.io/briefs/2026-05-flowiseai-rce/</link><pubDate>Thu, 14 May 2026 14:59:44 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-flowiseai-rce/</guid><description>FlowiseAI is vulnerable to authenticated remote code execution (RCE) due to a missing route-level authorization in the `/api/v1/node-custom-function` endpoint, allowing any authenticated user to execute arbitrary JavaScript and escape the NodeVM sandbox to run system commands.</description><content:encoded><![CDATA[<p>FlowiseAI, a low-code platform for building AI orchestration flows, is vulnerable to authenticated remote code execution (RCE) affecting versions 3.1.1 and earlier. The vulnerability stems from a missing authorization check on the <code>/api/v1/node-custom-function</code> endpoint, enabling any authenticated user or API key holder to submit malicious JavaScript code to the <code>Custom JS Function</code> node. When the <code>E2B_APIKEY</code> environment variable is not configured, the platform falls back to a <code>NodeVM</code> sandbox. Attackers can escape this sandbox, gain access to the host&rsquo;s <code>process</code> object, and execute arbitrary system commands. This allows attackers to compromise the Flowise server, potentially leading to data breaches, service disruption, or further lateral movement within the network. Most self-hosted instances are affected because the NodeVM sandbox is enabled by default when <code>E2B_APIKEY</code> is not explicitly set.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker authenticates to the FlowiseAI application using valid credentials or a valid API key.</li>
<li>The attacker crafts a malicious JavaScript payload designed to escape the NodeVM sandbox.</li>
<li>The attacker sends an HTTP POST request to the <code>/api/v1/node-custom-function</code> endpoint, including the malicious JavaScript code in the <code>javascriptFunction</code> parameter within the request body.</li>
<li>The server, lacking proper authorization checks, executes the attacker-supplied JavaScript code within the Custom JS Function node.</li>
<li>The malicious JavaScript exploits an exception path within the NodeVM to escape the sandbox, gaining access to the host&rsquo;s <code>process</code> object and <code>child_process</code> module.</li>
<li>The attacker uses the <code>child_process</code> module to execute arbitrary system commands on the Flowise server. For example, <code>cp.execSync('id').toString().trim()</code> to get the user ID.</li>
<li>The attacker retrieves the output of the executed command and potentially uses it to gather sensitive information or further compromise the system.</li>
<li>The attacker leverages the compromised server for lateral movement, data exfiltration, or other malicious activities.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows any authenticated Flowise user to execute arbitrary commands on the Flowise server. This can lead to a full compromise of the server, including the ability to read environment variables and secrets, access the filesystem, and make outbound network requests. The default configuration, which relies on the vulnerable NodeVM sandbox when <code>E2B_APIKEY</code> is not configured, increases the attack surface, as the majority of self-hosted Flowise instances are likely affected. A successful attack can result in data breaches, service disruption, and further exploitation of the compromised environment.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the &ldquo;FlowiseAI NodeVM Sandbox Escape Attempt&rdquo; Sigma rule to detect attempts to exploit this vulnerability by identifying the use of the <code>Error</code> object and constructor chain manipulation within the <code>Custom JS Function</code> node.</li>
<li>Deploy the &ldquo;FlowiseAI Custom Function RCE via API&rdquo; Sigma rule to detect HTTP requests to the <code>/api/v1/node-custom-function</code> endpoint with suspicious JavaScript payloads containing potentially malicious code execution patterns.</li>
<li>Immediately apply the recommended remediation steps: add explicit permission gating to <code>/api/v1/node-custom-function</code>, fail closed if <code>E2B_APIKEY</code> is absent, and restrict this endpoint from generic API key access.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>rce</category><category>sandbox-escape</category><category>nodevm</category></item></channel></rss>