Technical assessment
The artifact contains a Python script (exploit.py) that sends a crafted HTTP POST request to the unauthenticated /api/v1/build_public_tmp/{flow_id}/flow endpoint of a vulnerable Langflow instance. The request body includes a malicious custom component with Python code that establishes a reverse shell back to an attacker-controlled listener. The script also includes a built-in listener to receive the shell.
Backdoor review
No backdoor observed in reviewed code
The PoC demonstrates the documented CVE-2026-33017 vulnerability by sending a crafted request to the vulnerable endpoint. The exploit.py script builds a payload containing a reverse shell, which is the expected exploit behavior for an RCE PoC. No concealed backdoor, unrelated payload, persistence mechanism, or operator-directed harm beyond the stated exploit was observed.
Model confidence100%
AuthenticationNot required
LanguagesPythonMarkdown
Target softwareLangflow
Attack typesRemote Code ExecutionCode InjectionEval Injection
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidenceClassification basis and observed behavior
Classification basis
The artifact includes a complete, functional Python script (exploit.py) that actively exploits CVE-2026-33017 by sending a crafted request to execute arbitrary code and establish a reverse shell on the target server. This is code intended to exercise a vulnerability, not merely detect or report it.
exploit.py:1-130README.md:107-109Requirements
- A running, vulnerable Langflow instance (prior to 1.9.0) with a public flow ID.
README.md:11-16README.md:22 - An attacker-controlled listener (netcat or the script's built-in listener) to receive the reverse shell.
README.md:27-31
Observed behavior
- The exploit script constructs a JSON payload containing a custom component with embedded Python code that imports socket and subprocess, connects to a specified IP and port, and spawns an interactive bash shell.
exploit.py:9-24 - The script sends an unauthenticated POST request to the target endpoint with the malicious payload.
exploit.py:108-117 - The script optionally starts a built-in TCP listener to catch the reverse shell and provides an interactive command interface.
exploit.py:56-87
Safety-review evidenceBehaviors behind the backdoor verdict
Observables
- Reverse Shell
- socket.connect to attacker-controlled host and port, followed by subprocess.Popen(['/bin/bash','-i'])This is the core exploit payload for the documented RCE vulnerability. It is not a hidden backdoor; it is the intended demonstration of the CVE.
exploit.py:18-22README.md:141 - Listener
- Built-in TCP listener in exploit.py that accepts a connection and provides an interactive shellThis is a convenience feature for the PoC user, not a backdoor. It simply receives the reverse shell connection initiated by the exploit payload.
exploit.py:56-87
Review boundariesWhat the analysis did not establish
- The evidence packet reports complete_artifact_coverage as false and one file (entrypoint.sh) is omitted from the text content, but the exploit logic is fully present in the provided files.
- One file (entrypoint.sh) was omitted from the text evidence and was not reviewed. Its metadata was present but content was not supplied.
- Binary files were not present in the evidence.
- The review is limited to the supplied text content and does not include dynamic analysis or execution.
Model interpretationThis review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.