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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-38360 — चेतावनी: dash-uploader (Python/PyPI) में CVE-2026-38360 पथ ट्रैवर्सल (CWE-22) | Kitploit
उपकरण/GitHubGitHub/a1ohadance/cve-2026-38360
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHuba1ohadance/cve-2026-38360

CVE-2026-38360

चेतावनी: dash-uploader (Python/PyPI) में CVE-2026-38360 पथ ट्रैवर्सल (CWE-22)

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

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

सभी देखें →

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

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

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

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

CVE-2026-38360: dash-uploader में पाथ ट्रैवर्सल

CVE NVD CWE Severity Patch Auth Version PyPI Downloads Total Downloads License

अप्रमाणित पाथ ट्रैवर्सल fohrloop/dash-uploader (Python, PyPI) में, जो मनमानी फ़ाइल लेखन की अनुमति देता है, जिससे (केवल इन्हीं तक सीमित नहीं) रिमोट कोड निष्पादन (RCE), एप्लिकेशन सोर्स कोड का ओवरराइट, स्टोर्ड XSS और स्थायी बैकडोर इंस्टॉलेशन हो सकता है।

⚠️ कोई पैच उपलब्ध नहीं है, और भविष्य में कभी भी जारी नहीं किया जाएगा

रिपॉजिटरी को 2025-07-19 को आर्काइव किया गया था और कोई सक्रिय मेंटेनर नहीं है। प्रकाशित प्रत्येक संस्करण (0.1.0 से 0.7.0a2 तक) प्रभावित है और आगे भी रहेगा। पैकेज अभी भी लगभग 28,000 मासिक डाउनलोड प्राप्त करता है।

प्रोडक्शन में dash-uploader चलाने वाले किसी भी व्यक्ति को स्वयं मिटिगेशन लागू करना होगा। अनुशंसित समाधान Plotly Dash के अंतर्निर्मित dcc.Upload कंपोनेंट पर माइग्रेट करना है। पूर्ण विकल्पों के लिए मिटिगेशन देखें।

CVE IDCVE-2026-38360 (NVD)
भेद्यतापाथ ट्रैवर्सल (CWE-22)
CVSS 3.19.8 / गंभीर (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
उत्पादdash-uploader
प्रभावित संस्करण0.1.0 से 0.7.0a2 तक (सभी 18 रिलीज़)
फिक्स्ड संस्करणकोई नहीं (प्रोजेक्ट 2025-07-19 को आर्काइव किया गया)
हमला वेक्टररिमोट, अप्रमाणित
खोजकर्ताMuhammad Fitri Bin Mohd Sultan
असाइन किया गयाMITRE, 2026-05-07
संबंधितCVE-2026-38361 (उसी लाइब्रेरी में DoS)

विवरण

dash_uploader/httprequesthandler.py में request.form.get() से प्राप्त तीन उपयोगकर्ता-नियंत्रित पैरामीटर बिना किसी सैनिटाइज़ेशन या वैलिडेशन के सीधे os.path.join() और os.makedirs() में पास कर दिए जाते हैं:

  1. upload_id (line 57 → line 161, BaseHttpRequestHandler.get_temp_root): गंतव्य निर्देशिका को नियंत्रित करता है। एक हमलावर upload_id=../../../../usr/local/lib/python3.10/site-packages भेज सकता है और फ़ाइलें Python की पैकेज निर्देशिका में लिख दी जाती हैं।

  2. resumableFilename (line 51 → line 108, BaseHttpRequestHandler._post): अंतिम फ़ाइलनाम को नियंत्रित करता है। एक हमलावर वैध upload_id के साथ भी फ़ाइलनाम के माध्यम से अपलोड निर्देशिका से बाहर ट्रैवर्स कर सकता है।

  3. resumableIdentifier (line 54 → line 64, BaseHttpRequestHandler._post): टेम्प निर्देशिका बनाने के लिए os.makedirs() के साथ उपयोग किया जाता है। एक हमलावर फाइलसिस्टम पर कहीं भी मनमानी निर्देशिकाएँ बना सकता है।

अपलोड एंडपॉइंट (/API/dash-uploader डिफ़ॉल्ट रूप से) किसी प्रमाणीकरण की आवश्यकता नहीं रखता। v0.5.0 में जोड़ा गया http_request_handler हुक post_before() के माध्यम से अनुरोध-पूर्व जाँच की अनुमति देता है, लेकिन असुरक्षित _post() विधि हुक के लौटने के बाद सभी पैरामीटर सीधे request.form से पढ़ती है। हुक लाइब्रेरी द्वारा उन्हें प्रोसेस करने से पहले पैरामीटर को सैनिटाइज़ नहीं कर सकता। हुक के माध्यम से प्रमाणीकरण जोड़ने वाला डेवलपर अभी भी एक प्रमाणित उपयोगकर्ता से पाथ ट्रैवर्सल के प्रति असुरक्षित है।

असुरक्षित कोड

# dash_uploader/httprequesthandler.py
def _post(self):
    resumableFilename = request.form.get("resumableFilename", default="error", type=str)
    resumableIdentifier = request.form.get("resumableIdentifier", default="error", type=str)
    upload_id = request.form.get("upload_id", default="", type=str)
    ...
    temp_root = self.get_temp_root(upload_id)                          # upload_id flows in here
    temp_dir = os.path.join(temp_root, resumableIdentifier)            # raw user input -> os.path.join
    if not os.path.isdir(temp_dir):
        os.makedirs(temp_dir)                                          # raw user input -> os.makedirs

def get_temp_root(self, upload_id):
    return os.path.join(self.upload_folder, upload_id)                 # no sanitization: ../../ escapes upload_folder

तीन स्वतंत्र ट्रैवर्सल सिंक का मूल कारण एक ही है: फ़ॉर्म मान बिना किसी वैलिडेशन के os.path.join और os.makedirs तक पहुँचते हैं।

हमले के वेक्टर

एक अप्रमाणित रिमोट हमलावर अपलोड एंडपॉइंट पर HTTP POST मल्टीपार्ट अनुरोध भेजता है। upload_id फ़ॉर्म पैरामीटर में पाथ ट्रैवर्सल सीक्वेंस (../) इंजेक्ट करके, हमलावर अपलोड की गई फ़ाइल के लिए गंतव्य निर्देशिका को नियंत्रित करता है। उदाहरण के लिए, upload_id=../../../../usr/local/lib/python3.10/site-packages फ़ाइलों को Python की पैकेज निर्देशिका में लिखता है, जिससे अगले इंटरप्रेटर स्टार्टअप पर .pth ऑटो-निष्पादन के माध्यम से RCE संभव हो जाता है।

कोई प्रमाणीकरण, सत्र टोकन या CSRF टोकन आवश्यक नहीं है। दो अतिरिक्त पैरामीटर (resumableFilename और resumableIdentifier) उसी एंडपॉइंट के माध्यम से स्वतंत्र ट्रैवर्सल वेक्टर प्रदान करते हैं। आधिकारिक क्विकस्टार्ट दस्तावेज़ में दिखाई गई डिफ़ॉल्ट लाइब्रेरी कॉन्फ़िगरेशन एक ही curl कमांड से शोषणीय है।

प्रभाव

सर्वर प्रोसेस द्वारा लिखने योग्य किसी भी निर्देशिका में मनमानी फ़ाइल लेखन। यह कई जानी-मानी प्रिमिटिव्स के माध्यम से रिमोट कोड निष्पादन (RCE) में परिणत होता है:

RCE प्रिमिटिव्स

  • site-packages में डाली गई Python .pth फ़ाइल। अगले इंटरप्रेटर स्टार्टअप पर हमलावर द्वारा आपूर्ति किया गया कोड निष्पादित करती है।
  • sitecustomize.py या usercustomize.py इंजेक्शन। हर Python स्टार्टअप पर निष्पादित होता है।
  • एप्लिकेशन की पैकेज निर्देशिका में एक आयात योग्य Python मॉड्यूल को ओवरराइट करना। अगले आयात या वर्कर रीसाइकल पर निष्पादित होता है।
  • WSGI/ASGI एंट्री पॉइंट (जैसे app.wsgi, wsgi.py) को ओवरराइट करना। अगले वर्कर रीलोड पर निष्पादित होता है।
  • क्रोन ड्रॉप-इन (/etc/cron.d/, /etc/cron.hourly/, यूज़र क्रॉनटैब स्पूल) जब प्रोसेस के पास आवश्यक विशेषाधिकार हों। अनुसूचित निष्पादन।
  • सिस्टमड यूनिट या यूज़र-यूनिट ड्रॉप-इन (/etc/systemd/system/, ~/.config/systemd/user/)। अगली सेवा शुरू होने या रीबूट पर निष्पादित होता है।
  • जब प्रोसेस रूट के रूप में चलता है तो /etc/ld.so.preload इंजेक्शन। हमलावर कोड को हर बाद के बाइनरी निष्पादन में प्रीलोड करता है।
  • शेल स्टार्टअप फ़ाइल ओवरराइट (~/.bashrc, ~/.profile, ~/.bash_profile)। ऐप उपयोगकर्ता के अगले इंटरैक्टिव लॉगिन पर निष्पादित होता है।
  • ~/.ssh/authorized_keys में जोड़ना। ऐप उपयोगकर्ता के रूप में होस्ट तक स्थायी SSH पहुँच प्रदान करता है।

वेब-स्तरीय प्रभाव

  • परोसे जाने वाले JavaScript (उदाहरण के लिए, site-packages में Dash फ्रेमवर्क JS) को ओवरराइट करके होस्ट डोमेन पर स्टोर्ड क्रॉस-साइट स्क्रिप्टिंग, जो एप्लिकेशन के पुनः आरंभ होने तक हर पेज लोड पर हर उपयोगकर्ता को प्रभावित करती है
  • एप्लिकेशन सोर्स कोड ओवरराइट (एक मूक, स्थायी बैकडोर जो सामान्य डिप्लॉय में बना रहता है जब डिप्लॉय तंत्र प्रभावित पाथ को पूरी तरह ओवरराइट नहीं करता)

फाइलसिस्टम-स्तरीय प्रभाव

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