The vulnerability is a sandbox escape in Flowise's executeJavaScriptCode function, located in packages/components/src/utils.ts. The root cause was the improper merging of NodeVM sandbox options. The code used the JavaScript spread operator ({ ...defaultNodeVMOptions, ...nodeVMOptions }) to combine default security settings with options provided by the function's caller. This allowed an authenticated attacker to send a crafted request to the /api/v1/node-custom-function endpoint, providing a nodeVMOptions object that overrides the require restrictions of the sandbox. Specifically, by setting require.builtin to ['*'], the attacker could bypass the module allowlist and import the child_process module within the sandboxed environment, leading to arbitrary command execution on the server with the privileges of the Flowise process. The analysis of the patch commit 3086cb7e323bb96c5a581d3232ef975b0d92183d confirms this. The fix involves explicitly re-applying the secure default values for require, eval, and wasm after the potentially malicious user-provided options are merged, thus preventing the sandbox escape. The exploit chain starts at the NodesController.executeCustomFunction controller, passes through the executeCustomNodeFunction service, and culminates in the executeJavaScriptCode function where the vulnerability is triggered.