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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
SE6013_Project — CVE-2026-4372: खतरा मॉडल, मूल-कारण विश्लेषण, प्रतिकृति और पहचान | Kitploit
उपकरण/GitHubGitHub/alvin21mfmlai/se6013_project
रक्षात्मक उपकरणस्थैतिक विश्लेषणभेद्यता विश्लेषणआपूर्ति श्रृंखला सुरक्षापेपर और शोधलर्निंग और शिक्षाAI सुरक्षा
GitHubalvin21mfmlai/se6013_project

SE6013_Project

CVE-2026-4372: खतरा मॉडल, मूल-कारण विश्लेषण, प्रतिकृति और पहचान

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

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

सभी देखें →

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

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

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

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

CVE-2026-4372: खतरा मॉडल, मूल कारण और रक्षा

Hugging Face transformers में एक गंभीर रिमोट कोड एक्ज़ीक्यूशन (RCE) बग का रक्षात्मक विश्लेषण।


विषय-सूची

  1. एक नज़र में भेद्यता
  2. पहले प्राथमिक स्रोतों से पुष्टि करें
  3. खतरा मॉडल
  4. मूल कारण
  5. रक्षा
  6. पहचान

1. एक नज़र में भेद्यता

फ़ील्डमान
पहचानकर्ताCVE-2026-4372 / GHSA-29pf-2h5f-8g72
घटकHugging Face transformers
वर्गरिमोट कोड एक्ज़ीक्यूशन (CWE-94, कोड इंजेक्शन)
प्रवेश बिंदुAutoModelForCausalLM.from_pretrained(), जब कोई मॉडल लोड होता है
तंत्रमॉडल की config.json में एक अटेंशन सेटिंग (attn_implementation / _attn_implementation_internal) लाइब्रेरी को हमलावर का कोड डाउनलोड और चलाने पर मजबूर करती है
मुख्य विशेषताtrust_remote_code=False को बायपास करता है, वही सेटिंग जिस पर उपयोगकर्ता ठीक इसी चीज़ को रोकने के लिए भरोसा करते हैं
इसमें ठीक किया गयाtransformers 5.3.0

जिस उपयोगकर्ता ने सुरक्षित रहने के लिए जानबूझकर trust_remote_code=False छोड़ा था, वह भी उजागर था।


2. पहले प्राथमिक स्रोतों से पुष्टि करें ⚠️

नीचे दिए गए विवरणों को अंतिम मानने से पहले आधिकारिक स्रोतों के विरुद्ध जाँचें:

  • GHSA-29pf-2h5f-8g72 (GitHub सलाह): प्रभावित संस्करण और सारांश।
  • CVE-2026-4372 के लिए NVD प्रविष्टि: गंभीरता स्कोर और कमज़ोरी का प्रकार।
  • सलाह से लिंक किया गया ठीक करने वाला कमिट: दिखाता है कि वास्तव में कौन-सा कोड पथ बंद किया गया।

दो ट्रिगर विवरण प्रचलन में हैं:

  1. एक config.json अटेंशन फ़ील्ड (_attn_implementation_internal)।
  2. kernels पैकेज, जो अक्सर transformers[all] के माध्यम से इंस्टॉल होता है।

वे संभवतः एक ही पथ हैं: अटेंशन फ़ील्ड एक Hub रिपॉज़िटरी का नाम देता है, और kernels पैकेज उससे कोड डाउनलोड और चलाता है। यहाँ दिए गए फ़ील्ड नामों को तब तक अनंतिम मानें जब तक ठीक करने वाला कमिट उनकी पुष्टि न कर दे।


3. खतरा मॉडल

3.1 मॉडल कैसे लोड होता है

[ Model repo on the Hub ]       untrusted source
        │  config.json, tokenizer, weights, (code)
        ▼
[ Download to local cache ]
        ▼
[ Read config.json ]            settings become a config object
        ▼
[ Pick model class + attention type ]
        ▼
[ Build model, load weights ]
        ▼
[ Model runs in the user's process, with the user's permissions ]

3.2 विश्वास सीमाएँ

#सीमावह गार्ड जो लागू होना चाहिए
TB-1Hub → स्थानीय डिस्कविश्वसनीय रेपो, एक निश्चित कमिट पर पिनिंग
TB-2कॉन्फ़िग फ़ाइल → कॉन्फ़िग ऑब्जेक्टकेवल ज्ञात, सुरक्षित मानों की अनुमति देना
TB-3कॉन्फ़िग ऑब्जेक्ट → चल रहा कोडtrust_remote_code
TB-4मॉडल → ऑपरेटिंग सिस्टमसैंडबॉक्स, न्यूनतम विशेषाधिकार

यह बग TB-3 पर एक विफलता है: कॉन्फ़िग फ़ाइल से एक मान trust_remote_code जाँच पास किए बिना कोड निष्पादन तक पहुँच गया।

3.3 कोई शिकार किसी हमलावर का मॉडल कैसे प्राप्त करता है

  • मिलता-जुलता रेपो नाम, जैसे किसी लोकप्रिय मॉडल के नाम की लगभग-प्रतिलिपि।
  • दुर्भावनापूर्ण या समझौता किया गया प्रकाशक एक ज़हरीला संस्करण पुश करता है।
  • कोई ट्यूटोरियल, नोटबुक या निर्भरता किसी दुर्भावनापूर्ण रेपो की ओर इंगित करती है।
  • अपिन किया गया संस्करण: जो रेपो कल सुरक्षित था, आज एक दुर्भावनापूर्ण फ़ाइल परोसता है।

हर मामले में शिकार केवल सामान्य कॉल चलाता है, AutoModelForCausalLM.from_pretrained("<repo-id>")।


4. मूल कारण

4.1 गार्ड गलत पथ पर था

trust_remote_code रेपो कोड चलाने के एक तरीके की रक्षा करता है: कस्टम modeling_*.py फ़ाइलें। attention सेटिंग एक दूसरा तरीका था जो कभी उस गार्ड से नहीं गुज़रा।

     untrusted config.json attention setting
                    │
                    ▼
        "pick attention type" logic
                    │                  never checks:
                    ✗ ─────────────▶   trust_remote_code
                    ▼
     download + run code from the Hub (via `kernels`)

4.2 योगदान करने वाले कारक

  1. एक ही खतरनाक क्रिया तक दो मार्ग, जिनमें से केवल एक सुरक्षित है।
  2. कोड का चयन करने वाले सेटिंग को सादा डेटा माना गया, एक संख्या के समान विश्वास स्तर के साथ।
  3. एक "आंतरिक" फ़ील्ड (_ उपसर्ग) अभी भी एक अविश्वसनीय फ़ाइल से सेट किया जा सकता था।
  4. एक वैकल्पिक पैकेज (kernels) ने स्थापित होने पर चुपचाप हमले को सक्षम कर दिया, उदाहरण के लिए transformers[all] के माध्यम से।

4.3 सबक

खतरनाक क्रिया की रक्षा करें, उस तक के किसी एक मार्ग की नहीं। हर वह पथ जो "कोड चलाने" तक ले जा सकता है, उसे उसी जाँच से गुज़रना चाहिए।


5. रक्षा

रक्षा एक स्व-निहित स्क्रिप्ट है, defence/safe_load.py। इसका फ़ंक्शन safe_from_pretrained() from_pretrained() को प्रतिस्थापित करता है और किसी भी मॉडल के लोड होने से पहले चार जाँचें चलाता है। यदि कोई एक विफल हो जाती है, तो यह UnsafeModelLoad उठाता है और कुछ भी लोड नहीं होता।

#जाँचयह क्या करता है
1संस्करणयदि transformers 5.3.0 से पुराना है तो मना कर देता है। यही असली समाधान है।
2Kernelsपुराने संस्करण पर, यदि kernels पैकेज स्थापित है तो मना कर देता है, क्योंकि हमले को इसकी आवश्यकता होती है।
3Configमॉडल की config फ़ाइलें पढ़ता है और यदि उनमें कोई जोखिम भरी सेटिंग है (नीचे देखें) तो मना कर देता है। Hub मॉडल एक ही commit पर जाँचे और लोड किए जाते हैं।
4रिमोट कोडहमेशा trust_remote_code=False सेट करता है। केवल अच्छा अभ्यास: यह CVE इसे बायपास कर देता है।

पुराने संस्करण को जाँच 1 पर मना कर दिया जाता है। जाँच 2 और 3 केवल पुराने संस्करण पर तभी चलती हैं जब लैब-केवल विकल्प allow_vulnerable_env=True सेट हो।

जाँच 3 क्या रोकती है:

  • एक attention सेटिंग (attn_implementation, _attn_implementation, _attn_implementation_internal) जो अंतर्निहित नहीं है। केवल eager, sdpa, flash_attention_2, flash_attention_3 और flex_attention की अनुमति है, इसलिए attacker-org/evil-kernel जैसा मान अवरुद्ध हो जाता है, भले ही वह किसी नेस्टेड सब-कॉन्फ़िग के अंदर हो।
  • फ़ील्ड _attn_implementation_internal, auto_map और custom_pipelines।
  • वे config फ़ाइलें जिन्हें पढ़ा नहीं जा सकता।
  • सीधे config= के साथ पास किया गया config, क्योंकि यह जाँच को छोड़ देगा।

Hub मॉडल के लिए, केवल config फ़ाइलें डाउनलोड होती हैं, कभी भी weights या कोड नहीं। उन्हें एक निश्चित commit पर डाउनलोड किया जाता है, और फिर मॉडल उसी commit से लोड किया जाता है, इसलिए जाँच और लोड के बीच फ़ाइलें बदली नहीं जा सकतीं। चेतावनियों की समीक्षा के बाद, कोई व्यक्ति accept_findings=True के साथ जाँच 3 को ओवरराइड कर सकता है।

स्थितिहमले को क्या रोकता है
transformers 5.3.0 या नयाजाँच 1
पुराना संस्करण, kernels स्थापितजाँच 2
पुराना संस्करण, config में जोखिम भरी सेटिंगजाँच 3
जाँच के बाद रेपो बदला गयाजाँच 3 (एक ही commit जाँचा और लोड किया गया)

सीमा: जाँच 3 केवल ऊपर सूचीबद्ध सेटिंग्स को जानती है, इसलिए यह किसी नए हमले को नहीं पकड़ सकती। transformers>=5.3.0 में अपग्रेड करना ही एकमात्र पूर्ण समाधान है।


6. पहचान

पहचान घटक CVE-2026-4372 से जुड़े संभावित असुरक्षित Hugging Face मॉडल कॉन्फ़िगरेशन और कमजोर निर्भरताओं की पहचान करता है। यह दो स्वतंत्र पहचान तंत्र प्रदान करता है: स्थिर कॉन्फ़िगरेशन स्कैनिंग और निर्भरता विश्लेषण।

रक्षा घटक के विपरीत, ये उपकरण मॉडल लोड किए बिना या अविश्वसनीय कोड निष्पादित किए बिना संभावित सुरक्षा जोखिमों की रिपोर्ट करते हैं।

6.1 स्थिर कॉन्फ़िगरेशन पहचान

फ़ाइल: src/detection/static_detector.py

स्थिर डिटेक्टर config.json फ़ाइलों को पार्स करता है और सुरक्षा-संवेदनशील फ़ील्ड के लिए नेस्टेड JSON ऑब्जेक्ट्स और ऐरे की पुनरावर्ती रूप से जाँच करता है।

निम्नलिखित फ़ील्ड की निगरानी की जाती है:

कॉन्फ़िगरेशन फ़ील्डपहचान का उद्देश्य
_attn_implementation_internalCVE-2026-4372 से जुड़ा आंतरिक attention कॉन्फ़िगरेशन फ़ील्ड
_experts_implementation_internalसमीक्षा आवश्यक अतिरिक्त आंतरिक कार्यान्वयन फ़ील्ड
auto_mapकस्टम मॉडल कार्यान्वयन कोड का संदर्भ दे सकता है
custom_pipelinesकस्टम पाइपलाइन कार्यान्वयन का संदर्भ दे सकता है

उपयोग:

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