CVE-2026-44827 একটি ত্রুটি যা Hugging Face Diffusers মডেল লোড করার সময় একজন আক্রমণকারীকে যেকোনো কোড (arbitrary code) চালানোর সুযোগ দেয়, এমনকি যদি trust_remote_code ফ্ল্যাগটি বন্ধও থাকে। গবেষকরা এই ত্রুটির নাম দিয়েছেন “FaceHugger” এবং এটি লাইব্রেরির দুই-ধাপের (two-phase) মডেল লোডিং প্রক্রিয়ার একটি রেস কন্ডিশন (race condition)-এর কারণে হয়েছে বলে শনাক্ত করেছেন। যে কোনো পাইপলাইন যা হাব (hub) থেকে মডেল সংগ্রহ করে, তা এর দ্বারা প্রভাবিত হতে পারে।

কেন এই দুর্বলতাটি গুরুত্বপূর্ণ

Diffusers টেক্সট-টু-ইমেজ এবং অন্যান্য ডিফিউশন মডেলগুলোকে চালিত করে। ২০২৬ সালের জুলাই মাসে এটি ৮.১ মিলিয়ন ডাউনলোড হয়েছে, তাই অসংখ্য CI/CD জব, কন্টেইনার ইমেজ এবং এন্টারপ্রাইজ ইনফারেন্স সার্ভিস এর ওপর নির্ভরশীল। এই বাগটি মূলত সেই প্রাথমিক নিরাপত্তা ব্যবস্থা (trust_remote_code) কে ফাঁকি দেয় যা ডেভেলপাররা মডেলের সাথে আসা অনিরাপদ পাইথন কোড ব্লক করার জন্য ব্যবহার করেন।

কীভাবে এই বাইপাস কাজ করে

  • দুই-ধাপের লোডিং (Two-phase loading): Diffusers প্রথমে একটি মডেল কনফিগারেশন সংগ্রহ করে, তারপর দ্বিতীয় একটি রিকোয়েস্টের মাধ্যমে মডেলের ওয়েটস (weights) এবং এর সাথে সম্পর্কিত যেকোনো কোড সংগ্রহ করে।
  • রেস কন্ডিশন (Race condition): প্রথম রিকোয়েস্টটি পরীক্ষা করার জন্য যে সিকিউরিটি চেক করা হয়, তা দ্বিতীয় রিকোয়েস্টের ক্ষেত্রে কার্যকর হয় না।
  • পেলোড ইনসারশন (Payload insertion): একজন আক্রমণকারী যদি দ্বিতীয় রিকোয়েস্টটি নিয়ন্ত্রণ করতে পারে, তবে তিনি সেখানে ক্ষতিকারক কোড ইনজেক্ট করতে পারেন যা লাইব্রেরিটি পরবর্তীতে রান করে ফেলে, ফলে ট্রাস্ট গেট (trust gate) সম্পূর্ণভাবে বাইপাস হয়ে যায়।

যেহেতু সিকিউরিটি চেকটি শুধুমাত্র প্রাথমিক রিকোয়েস্টটি দেখে, তাই trust_remote_code বন্ধ রাখা নিরাপত্তার একটি মিথ্যা ধারণা দেয়।

ডেভেলপারদের জন্য জরুরি পদক্ষেপ

  1. Diffusers ভার্সন নির্দিষ্ট করে দিন (Pin the Diffusers version): requirements.txt বা আপনার লক ফাইলে নির্দিষ্ট ভার্সন ব্যবহার করুন যাতে ভুলবশত কোনো দুর্বল ভার্সনে আপগ্রেড না হয়ে যায়।
  2. প্রোডাকশনে সরাসরি মডেল পুল করা এড়িয়ে চলুন: প্রোডাকশন এনভায়রনমেন্টে সরাসরি মডেল পুল করবেন না। মডেলগুলো একটি বিশ্বস্ত আর্টিফ্যাক্ট স্টোরে (যেমন: একটি ইন্টারনাল S3 বাকেট) ডাউনলোড করে রাখুন এবং সেখান থেকে লোড করুন।
  3. মডেল রিপোজিটরি অডিট করুন: ব্যবহারের আগে মডেল রিপোজিটরি যাচাই করে নিন। নিশ্চিত করুন যে মডেলের কোড ফাইলগুলো প্রত্যাশিত হ্যাশ (hash)-এর সাথে মিলছে অথবা কোনো যাচাইকৃত উৎস থেকে আসছে।
  4. নেটওয়ার্ক এগ্রেস কন্ট্রোল (Network egress controls) প্রয়োগ করুন: নিশ্চিত করুন যাতে বিল্ড এজেন্ট এবং ইনফারেন্স সার্ভারগুলো আপনার অনুমতি ছাড়া পাবলিক Hugging Face হাবে পৌঁছাতে না পারে।
  5. আইসোলেটেড কন্টেইনার বা স্যান্ডবক্সের ভেতরে মডেল লোডিং চালান: ন্যূনতম প্রিভিলেজ বা ক্ষমতা দিয়ে আইসোলেটেড কন্টেইনার বা স্যান্ডবক্সের ভেতরে মডেল লোড করুন, যাতে কোনো অনিয়ন্ত্রিত কোড রান হলেও তার প্রভাব সীমিত থাকে।

সারকথা:

FaceHugger বাগটি দেখায় যে শুধু trust_remote_code বন্ধ রাখাই যথেষ্ট নয়। যতক্ষণ না আপনি Diffusers আপডেট করছেন এবং আপনার মডেল ইনজেশন পাইপলাইনকে আরও সুরক্ষিত (harden) করছেন, ততক্ষণ প্রতিটি রিমোট মডেল পুল ক্ষতিকারক কোডের জন্য একটি সম্ভাব্য প্রবেশপথ হিসেবে থেকে যাবে।