نشرت CERT/CC مذكرة الثغرة VU#456290 في 1 سبتمبر، وتغطي CVE-2026-80047 في Hugging Face Transformers. وبحسب نص المذكرة نفسه، فإن المكتبة “تجري جلبًا لوحدة بعيدة وكتابة إلى ذاكرة التخزين المؤقت المحلية قبل تقييم مطالبة الموافقة trust_remote_code، بما يخالف العقد الأمني المطبق عبر مسارات تحميل الوحدات الديناميكية الأخرى”.

أين ينقلب الترتيب

المسار المتأثر هو load_custom_generate()، الذي يستدعي get_cached_module_file() لمستودع نموذج من أجل custom_generate/generate.py. وتقوم هذه الدالة المساعدة بنسخ الملف إلى HF_MODULES_CACHE المحلي. وبعد ذلك فقط يُلجأ إلى resolve_trust_remote_code(). أما كل مسارات التحميل الأخرى — AutoConfig وAutoModel وAutoTokenizer — فتطلب الموافقة قبل لمس القرص.

ما يخطئ فيه الإطار الشائع

سيُصاغ هذا على أنه تنفيذ شيفرة عن بُعد في Transformers، كما أن ملخص NVD يدفع في هذا الاتجاه ببدئه بعبارة “remote Python files”. لكنه ليس RCE بحد ذاته: رفض مطالبة الثقة لا يزال يوقف التنفيذ، لأن get_class_in_module() يعمل بعد استدعاء الموافقة. لكن ما لا يمكنك رفضه هو وصول الملف إلى ذاكرة التخزين المؤقت لديك، حيث يمكن أن يصطدم لاحقًا بتحميل موثوق. الأثر هو كتابة غير مرغوب فيها تبقى بعد انتهاء الجلسة التي قال فيها المستخدم لا.

نطاق الإصدارات يشير إلى الاتجاه الخطأ

تحدد المذكرة النطاق المتأثر بأنه 4.49.0 through 5.8.1، كما أن مصفوفة الثغرات في سجل GitHub فارغة، لذا لا يُذكر إصدار مصحح. وقراءة هذا الحد الأعلى على أنه “الإصدارات الأحدث سليمة” هي الفخ: فترتيب الجلب قبل الموافقة ما يزال كما هو في v5.16.1، الصادر في 26 أغسطس — أي بعد ثمانية إصدارات فرعية من أعلى النطاق المذكور. يسجل النطاق المكان الذي توقف فيه الاختبار، لا المكان الذي تتوقف فيه الثغرة.

لا بيان من الشركة، بعد أربعة أسابيع

تسجل CERT/CC أن Hugging Face أُخطرت في 4 أغسطس، وعند النشر في 1 سبتمبر تضع حالة الشركة على Unknown مع العبارة “We have not received a statement from the vendor.” ولا توجد درجة منشورة أيضًا — فلا GitHub ولا CERT/CC يحددان CVSS. وفجوة 28 يومًا بين الإخطار والنشر من دون رد من الشركة هي جزء قصة الإفصاح إلى جانب القصة التقنية.