CVE-2026-44827 हमलावर को Hugging Face Diffusers मॉडल लोड करते समय मनमाना कोड (arbitrary code) चलाने की अनुमति देता है, भले ही trust_remote_code फ्लैग बंद हो। शोधकर्ताओं ने इस खामी को “FaceHugger” नाम दिया है और इसका पता लाइब्रेरी की दो-चरणीय (two-phase) मॉडल लोडिंग प्रक्रिया में एक रेस कंडीशन (race condition) से लगाया है। कोई भी पाइपलाइन जो हब से मॉडल खींचती है, उससे प्रभावित हो सकती है।
यह भेद्यता (vulnerability) क्यों महत्वपूर्ण है
Diffusers, text-to-image और अन्य डिफ्यूजन मॉडल्स को शक्ति प्रदान करता है। जुलाई 2026 में इसके 8.1 मिलियन डाउनलोड दर्ज किए गए थे, इसलिए अनगिनत CI/CD जॉब्स, कंटेनर इमेज और एंटरप्राइज इन्फरेंस सेवाएं इस पर निर्भर हैं। यह बग उस प्राथमिक सुरक्षा तंत्र (trust_remote_code) को विफल कर देता है जिसे डेवलपर्स मॉडल के साथ आने वाले अविश्वसनीय Python कोड को रोकने के लिए सक्षम करते हैं।
यह बाईपास कैसे काम करता है
- दो-चरणीय लोडिंग (Two-phase loading): Diffusers पहले मॉडल कॉन्फ़िगरेशन प्राप्त करता है, फिर दूसरा अनुरोध मॉडल वेट्स (weights) और उससे जुड़े किसी भी कोड को खींचता है।
- रेस कंडीशन (Race condition): सुरक्षा जांच जो पहले अनुरोध का निरीक्षण करती है, वह दूसरे अनुरोध तक विस्तारित नहीं होती है।
- पेलोड इंसर्शन (Payload insertion): दूसरे अनुरोध को नियंत्रित करने वाला हमलावर दुर्भावनापूर्ण कोड इंजेक्ट कर देता है जिसे लाइब्रेरी बाद में निष्पादित (execute) करती है, जिससे ट्रस्ट गेट पूरी तरह से बाईपास हो जाता है।
चूंकि जांच केवल प्रारंभिक अनुरोध को देखती है, इसलिए trust_remote_code को अक्षम करने से सुरक्षा का एक झूठा अहसास होता है।
डेवलपर्स के लिए तत्काल कदम
- Diffusers के वर्जन को पिन करें:
requirements.txtया अपनी लॉक फ़ाइल में Diffusers के वर्जन को पिन करें ताकि असुरक्षित रिलीज़ में अनजाने अपग्रेड को रोका जा सके। - प्रोडक्शन में ऑन-द-फ्लाई (on-the-fly) मॉडल पुल से बचें: मॉडल्स को एक विश्वसनीय आर्टिफैक्ट स्टोर (जैसे, एक आंतरिक S3 बकेट) में डाउनलोड करें और वहां से उन्हें लोड करें।
- मॉडल रिपॉजिटरी का ऑडिट करें: उपयोग करने से पहले मॉडल रिपॉजिटरी का ऑडिट करें। सत्यापित करें कि मॉडल की कोड फ़ाइलें अपेक्षित हैश (hashes) से मेल खाती हैं या किसी जांचे हुए स्रोत से आती हैं।
- नेटवर्क एग्रेस (egress) नियंत्रण लागू करें: ताकि बिल्ड एजेंट और इन्फरेंस सर्वर सार्वजनिक Hugging Face हब तक तब तक न पहुँच सकें जब तक आप इसकी अनुमति न दें।
- मॉडल लोडिंग को आइसोलेटेड कंटेनरों या सैंडबॉक्स के भीतर चलाएं: न्यूनतम विशेषाधिकारों (privileges) के साथ मॉडल लोडिंग चलाएं, जिससे अनचाहे कोड निष्पादन के प्रभाव को सीमित किया जा सके।
निष्कर्ष:
FaceHugger बग दिखाता है कि trust_remote_code को बंद करना पर्याप्त नहीं है। जब तक आप Diffusers को अपडेट नहीं करते और अपने मॉडल इंजेक्शन पाइपलाइन को मजबूत नहीं करते, तब तक हर रिमोट मॉडल पुल दुर्भावनापूर्ण कोड के लिए एक संभावित प्रवेश बिंदु बना रहेगा।
