Flowise 3.1.3 - arbitrary code execution
PoC files
1 fileFile viewing is interactive and short-lived. Downloads are password-protected ZIP archives using password eip.
Analysis
Technical assessment
The script validates the CVE-2026-58057 case-sensitivity bypass locally without interacting with a Flowise instance. It simulates the vulnerable and fixed validation logic, then uses a local Node.js canary to confirm that the lower-case 'node_options' environment variable is honored on Windows, demonstrating the bypass condition.
Backdoor review
No backdoor observed in reviewed code
The PoC script demonstrates the CVE-2026-58057 vulnerability by validating the case-sensitivity bypass and performing a local canary test. It writes a temporary loader file, sets the 'node_options' environment variable, and runs Node.js to check if the bypass works. No concealed executable behavior, persistence, credential theft, or unrelated remote access is observed. The script's actions are consistent with a proof-of-concept for the described vulnerability.
Classification basis and observed behavior
Classification basis
The script does not connect to or exploit a Flowise server. It locally validates the vulnerability condition by simulating the denylist logic and testing the Node.js runtime behavior. This is detection/validation, not exploitation.
exploits/multiple/webapps/52623.py:1-157Requirements
- Node.js must be installed and available in PATH for the canary test.
exploits/multiple/webapps/52623.py:64-66 - The script must be executed on a Windows system to reproduce the case-insensitivity bypass.
exploits/multiple/webapps/52623.py:127
Observed behavior
- Simulates the vulnerable Flowise validation function, which uses case-sensitive set membership to block dangerous environment variables.
exploits/multiple/webapps/52623.py:47-53 - Simulates a fixed validation function that normalizes keys to uppercase before checking the denylist.
exploits/multiple/webapps/52623.py:55-61 - Tests whether the lower-case 'node_options' bypasses the vulnerable validator and whether the normalized validator blocks it.
exploits/multiple/webapps/52623.py:107-121 - Creates a temporary Node.js loader script and spawns a Node.js process with 'node_options' set to --require that loader. The loader writes a canary file if the environment variable is honored.
exploits/multiple/webapps/52623.py:63-100 - Outputs a JSON result indicating whether the bypass was reproduced, including the canary file creation status.
exploits/multiple/webapps/52623.py:125-136
Behaviors behind the backdoor verdict
Observables
- File Write
- loader_path.write_text(...)The script writes a temporary JavaScript loader file to disk to test the NODE_OPTIONS bypass.
exploits/multiple/webapps/52623.py:70-73 - Environment Variable Set
- node_optionsThe script sets the 'node_options' environment variable to demonstrate the case-sensitivity bypass.
exploits/multiple/webapps/52623.py:78 - Process Execution
- subprocess.run([node, '-e', 'process.exit(0)'])The script executes Node.js with the manipulated environment to test if the bypass works.
exploits/multiple/webapps/52623.py:84-90
What the analysis did not establish
- The script does not interact with a Flowise instance; it only validates the bypass condition locally.
- The canary test requires Node.js to be installed and the script to run on Windows; on other platforms the finding_reproduced flag may be false even if the validation bypass is present.
- The script does not demonstrate actual code execution within a Flowise server context.
- Only the supplied text file was reviewed; no external dependencies or binary files were inspected.
- The script's behavior is limited to local testing and does not include the actual exploitation step against a remote Flowise instance.
This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.