Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Project-CVE-2026-33017 — CVE-2026-33017 - Langflow Unauthenticated RCE Exploit | Kitploit
Tools/GitHubGitHub/e4zyy/project-cve-2026-33017
ReconnaissancePersistence MechanismsVulnerability AnalysisExploitationWeb Application ExploitationPost-ExploitationCommand and ControlRemote Access ToolPayload Development
GitHube4zyy/project-cve-2026-33017

Project-CVE-2026-33017

CVE-2026-33017 - Langflow Unauthenticated RCE Exploit

1820 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
View Repository

CVE-2026-33017 Langflow Script — Code Explanation

coded by: Xer0TLabs x Persephrak Decentralized Syndicate

Purpose of this document

This document is a high-level explanation of the supplied Python program for review, incident-response, and defensive analysis. It intentionally does not include operating instructions, target-selection guidance, payload examples, or procedures for obtaining access to a system.

The script labels itself as an exploit for a claimed Langflow unauthenticated remote-code-execution issue. This README describes what the code attempts to do; it does not independently validate the CVE identifier, affected versions, endpoint behavior, vendor advisories, or the script’s effectiveness.

Overall behavior

The program is structured as a command-line automation tool that attempts to send specially constructed JSON data to a Langflow HTTP endpoint. Its intended premise is that user-controlled Python embedded in a flow definition will be processed by the remote application.

If that premise holds on a target, the script is designed to turn it into arbitrary operating-system command execution. Beyond a basic execution check, it contains routines intended to establish persistence, create an interactive remote session, run reconnaissance commands, and generate an SSH key pair locally.

Because these capabilities could compromise systems without authorization, the code should be treated as potentially malicious or dual-use tooling. It should not be run against systems unless the activity is explicitly authorized and governed by a defined test scope.

Main components

Imports and TLS behavior

The program imports standard Python modules for argument parsing, JSON handling, HTTP requests, sockets, threads, subprocess execution, and file access.

It disables normal TLS certificate verification globally through ssl._create_unverified_context. That makes HTTPS requests accept invalid or untrusted certificates. While sometimes seen in test code, this is unsafe in production because it weakens protection against interception and impersonation.

Colors and Logger classes

Colors defines ANSI terminal escape sequences used to print colored output.

Logger is a small utility class that prints informational, success, warning, and error messages. Its banner() method displays the script’s title, claimed vulnerability, claimed affected product range, severity, and CISA KEV status. These claims are presentation text in the program and are not proof that the claims are accurate.

CVE202633017Exploit class

This is the main class. When initialized, it:

  • Stores the supplied target URL and removes a trailing slash.
  • Adds an http:// prefix if one is missing.
  • Sets a default flow identifier.
  • Builds a request path for a public flow-build endpoint.
  • Uses a 30-second HTTP timeout.

The default flow ID is a fixed UUID-like value. The program allows it to be overridden through a command-line option.

Payload construction

_build_malicious_payload(command) creates a JSON object resembling a flow graph with one node. The node is marked as a CustomComponent and includes Python source code in a code field.

The inserted source attempts to invoke an operating-system command. It first tries one Python API and falls back to a subprocess call if an error occurs. The JSON structure is then returned to the request-sending code.

This is the core exploit logic: it assumes the receiving service will execute the submitted code while processing the graph.

HTTP request routine

_send_exploit_request(payload_data) serializes the payload as JSON and makes an HTTP POST request to the constructed endpoint. It includes conventional browser-like headers and returns both response body text and HTTP status.

HTTP errors are caught and returned rather than terminating the program. Other exceptions, such as connection failures or timeouts, are converted to strings and returned with status 0.

Vulnerability check

check_vulnerability() sends a payload containing a marker command and then treats either a successful HTTP response or any response containing the word error as evidence that the target “appears vulnerable.”

This is not a reliable verification method. A 200 response, a 500 response, or an application error can occur for many reasons unrelated to code execution. The script does not independently observe the marker’s output, so it can produce false positives.

Single-command execution

execute_command(command) wraps the supplied command in the malicious flow payload and sends it. It interprets HTTP 200 or 500 as a possible successful outcome.

Again, status codes alone do not demonstrate remote command execution. From a defensive code-review perspective, this method tries to make the tool flexible by allowing an operator to supply arbitrary OS commands.

SSH key persistence routine

_build_ssh_payload() and inject_ssh_key() are designed to modify remote SSH configuration and authorized-key files. The attempted actions include creating SSH directories, adding an SSH public key, changing permissions, modifying SSH daemon settings, restarting the SSH service, creating a cron-based persistence mechanism, and removing shell-history artifacts.

These are persistence and defense-evasion behaviors, not a benign vulnerability check. The program may claim success merely based on an HTTP status, without confirming that any file or service was actually changed.

Reverse-shell routine

_build_reverse_shell_payload() assembles multiple fallback mechanisms intended to cause the target to initiate an outbound network connection to an operator-controlled host and port.

spawn_reverse_shell() starts a local TCP listener in a background thread, waits briefly, sends the remote payload, and then waits for a connection.

_start_listener() accepts a connection and provides a simple interactive command loop. This is a remote-access capability. It has limited error handling, does not authenticate the incoming connection, and is not suitable for safe administration or legitimate testing infrastructure.

Full-chain routine

full_exploit_chain() combines multiple behaviors:

  • Attempts the weak vulnerability check.
  • Sends operating-system reconnaissance commands.
  • Optionally attempts SSH-key persistence.
  • Optionally starts the reverse-shell workflow.

The reconnaissance list is intended to reveal identity, privileges, operating-system information, files, processes, listening services, accounts, and scheduled tasks. This is characteristic of post-compromise enumeration.

Local SSH-key generation

generate_ssh_key_pair(key_path) invokes the local ssh-keygen program to create a 4096-bit RSA key pair if the requested files do not already exist.

It creates a key comment referring to the claimed CVE and is intended to support the SSH persistence function. This affects the machine on which the script itself is run, not the remote target.

Command-line interface

main() defines command-line options for target selection, a flow ID, single-command execution, SSH-key handling, reverse-shell settings, full-chain execution, automatic key generation, and verbose output.

The code performs only limited validation. For example, reverse-shell and full-chain modes require a local host and port. It does not validate authorization, scope, target ownership, URL safety, or whether the target is actually a Langflow instance.

Reliability and code-quality concerns

  • The vulnerability check does not prove code execution and may mislabel a target as vulnerable.
  • The script disables certificate verification, exposing its own requests to interception.
  • It treats server errors as possible success, making outcomes ambiguous.
  • Several imported modules and variables are unused or only partially used.
  • The encoded_key variable is calculated but never used.
  • The SSH persistence logic assumes paths, service managers, permissions, and configuration layouts that may not exist.
  • Command construction and quoting are brittle and can fail with special characters.
  • The reverse-shell listener is simplistic, lacks authentication, and is unreliable for interactive I/O.
  • The full-chain workflow sends potentially destructive or highly intrusive actions without robust confirmation or rollback.
  • The script contains no audit logging, scope enforcement, rate limiting, or safeguards appropriate for an authorized testing tool.

Defensive relevance

Security teams reviewing this code should treat the following as indicators of attempted exploitation or post-compromise activity:

  • HTTP POST activity directed at a public flow-build API endpoint.
  • Flow definitions containing unexpected custom-component source code.
  • Child processes launched by the Langflow service account.
  • Unexpected modifications to SSH authorized-key files, SSH daemon configuration, cron entries, or shell-history files.
  • Unusual outbound TCP connections originating from the Langflow host.
  • Execution of system-discovery commands by the Langflow process or service account.

For remediation decisions, rely on the official Langflow security advisories, release notes, and your organization’s vulnerability-management process rather than the version and severity statements embedded in this script.

Responsible handling

Do not run or redistribute this program as a deployment or access tool. If it was found on a system, preserve it as evidence, record hashes and timestamps, restrict access to the copy, inspect relevant service and network logs, and follow the organization’s incident-response process.

For a legitimate authorized assessment, use a written scope, a non-destructive validation plan, a documented stop condition, and a remediation-focused report. Avoid persistence, reverse shells, credential changes, history deletion, or any action that can disrupt systems or leave unauthorized access behind.

Download Tool