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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-39987 — مجموعة أدوات للكشف والاستغلال لثغرة CVE-2026-39987، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) قبل المصادقة في دفاتر Marimo. تتضمن ماسحًا بلغة Python وسكربت Nmap NSE لتحديد الحالات المعرضة للخطر عبر فحوصات نقطة نهاية WebSocket. | Kitploit
أدوات/GitHubGitHub/keraattin/cve-2026-39987
ماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتأمن الويبأمن الشبكاتاختبار الاختراق
GitHubkeraattin/cve-2026-39987

CVE-2026-39987

مجموعة أدوات للكشف والاستغلال لثغرة CVE-2026-39987، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) قبل المصادقة في دفاتر Marimo. تتضمن ماسحًا بلغة Python وسكربت Nmap NSE لتحديد الحالات المعرضة للخطر عبر فحوصات نقطة نهاية WebSocket.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-39987 — تنفيذ التعليمات البرمجية عن بُعد قبل المصادقة في Marimo Python Notebook

CVE-2026-39987 CVSS 9.3 CWE-306 Marimo Pre-Auth RCE

TL;DR

ثغرة تنفيذ تعليمات برمجية عن بُعد قبل المصادقة في Marimo، وهو دفتر ملاحظات Python مفتوح المصدر لعلوم البيانات والذكاء الاصطناعي/تعلّم الآلة. نقطة نهاية WebSocket الطرفية (/terminal/ws) تتجاوز التحقق من المصادقة بالكامل، بينما نقطة نهاية دفتر الملاحظات المجاورة (/ws) تفرضها بشكل صحيح. يمكن لمهاجم غير مصادق الاتصال بـ /terminal/ws والحصول على صدفة PTY تفاعلية كاملة على النظام المضيف بدون أي بيانات اعتماد.

تم استغلالها في البرية خلال 10 ساعات من الإفصاح عنها. سرق المهاجمون بيانات اعتماد AWS في أقل من 3 دقائق.

تؤثر على Marimo <= 0.20.4. تم إصلاحها في Marimo 0.23.0.


جدول المحتويات

  • حقائق سريعة
  • ما هو Marimo؟
  • الغوص العميق في الثغرة
    • نقطتا نهاية WebSocket
    • فحص المصادقة المفقود
    • الهجوم: من الإفصاح إلى مفاتيح AWS في 3 دقائق
  • تحليل الأثر
  • الإصدارات المتأثرة
  • الصورة الأكبر: سلسلة أدوات الذكاء الاصطناعي/تعلّم الآلة تحت الهجوم
  • الاكتشاف
    • ماسح Python
    • نص Nmap NSE
    • التحقق اليدوي
  • مؤشرات الاختراق
  • المعالجة
  • المراجع
  • المؤلف

حقائق سريعة

الحقلالتفاصيل
معرف CVECVE-2026-39987
البائعمشروع Marimo
المنتجMarimo (دفتر ملاحظات Python)
الإصدارات المتأثرة<= 0.20.4
CVSS v3.19.3 (حرجة)
CWECWE-306 — غياب المصادقة لوظيفة حرجة
متجه الهجومالشبكة
المصادقةغير مطلوبة
تفاعل المستخدملا شيء
نضج الاستغلالمستغلة بنشاط في البرية
الوقت حتى الاستغلال~10 ساعات بعد الإفصاح
تم إصلاحها فيMarimo 0.23.0

ما هو Marimo؟

Marimo هو دفتر ملاحظات Python تفاعلي مفتوح المصدر مصمم كبديل حديث لـ Jupyter. وهو مبني لعلوم البيانات، وتجارب الذكاء الاصطناعي/تعلّم الآلة، وتحليل البيانات التفاعلي. تشمل ميزاته الرئيسية تتبع التبعيات تلقائيًا، والتنفيذ القابل للتكرار، وتجربة مطور أنظف مقارنة بدفاتر الملاحظات التقليدية.

يكتسب Marimo زخمًا سريعًا في مجتمع Python والذكاء الاصطناعي/تعلّم الآلة، خاصة بين الممارسين الذين يريدون سير عمل دفاتر ملاحظات أكثر تنظيماً مما يوفره Jupyter.

مثل جميع بيئات دفاتر الملاحظات، عادةً ما يكون لدى مثيلات Marimo وصول إلى موارد حساسة: بيانات اعتماد السحابة (AWS، GCP، Azure)، وسلاسل اتصال قواعد البيانات، ومفاتيح API لخدمات الذكاء الاصطناعي (OpenAI، Anthropic، وغيرها)، والوصول إلى الشبكة الداخلية. على عكس تطبيقات الويب التقليدية، تم تصميم دفاتر الملاحظات لتنفيذ تعليمات برمجية عشوائية. هذا هو غرضها الأساسي.

هذا المزيج يجعل أي تجاوز للمصادقة في بيئة دفتر ملاحظات مدمرًا بشكل خاص.``` Typical Marimo Deployment:

┌──────────────┐ ┌────────────────────────────────┐ │ │ HTTP │ Marimo Server │ │ Browser │────────>│ │ │ (User) │ │ ┌──────────────────────────┐ │ │ │<────────│ │ /ws (Notebook) │ │ └──────────────┘ WS │ │ ✅ validate_auth() │ │ │ └──────────────────────────┘ │ │ │ │ ┌──────────────────────────┐ │ │ │ /terminal/ws │ │ │ │ ❌ NO AUTH CHECK │ │ │ └──────────────────────────┘ │ │ │ │ ┌──────────────────────────┐ │ │ │ Python Environment │ │ │ │ .env files │ │ │ │ AWS credentials │ │ │ │ API keys │ │ │ └──────────────────────────┘ │ └────────────────────────────────┘

---

## الغوص العميق في الثغرة

### نقطتا نهاية WebSocket

ينفّذ خادم Marimo نقاط نهاية WebSocket متعددة لميزات مختلفة. الفرق الحاسم بين نقطتي النهاية الرئيسيتين هو وجود (أو غياب) فحص المصادقة:```
  Authentication Flow Comparison:

  /ws (Notebook WebSocket):
  ┌─────────┐    ┌───────────────┐    ┌──────────┐    ┌───────────┐
  │ Connect │───>│ validate_auth │───>│  Accept  │───>│ Notebook  │
  └─────────┘    └───────┬───────┘    └──────────┘    └───────────┘
                         │
                    ❌ Reject if
                    not authenticated

  /terminal/ws (Terminal WebSocket):
  ┌─────────┐    ┌───────────────┐    ┌──────────┐    ┌───────────┐
  │ Connect │───>│ Check mode &  │───>│  Accept  │───>│ PTY Shell │
  └─────────┘    │ platform only │    └──────────┘    └───────────┘
                 └───────────────┘
                 ⚠️ No auth check!
                 Anyone gets a shell!

فحص المصادقة المفقود

نقطة نهاية دفتر الملاحظات (/ws) تستدعي بشكل صحيح validate_auth() للتحقق من هوية المستخدم قبل قبول اتصالات WebSocket. هذا هو السلوك الأمني المتوقع.

نقطة نهاية الطرفية (/terminal/ws) تتحقق فقط مما إذا كان الخادم في وضع التشغيل وما إذا كانت المنصة تدعم وظيفة الطرفية. إنها لا تستدعي أبدًا validate_auth(). بعد اجتياز هذه الفحوصات الأساسية، تقبل الاتصال وتنشئ جلسة PTY (طرفية زائفة) كاملة.```python

/ws (Notebook) — CORRECT implementation

async def websocket_connect(self, message): await self.validate_auth() # ✅ Checks authentication await self.accept() # ... notebook communication

/terminal/ws (Terminal) — VULNERABLE implementation

async def websocket_connect(self, message): if not self.is_running_mode(): # Only checks mode await self.close() return if not self.is_platform_supported(): # Only checks platform await self.close() return await self.accept() # ❌ No auth! Anyone gets a shell # ... PTY shell creation

هذا هو **CWE-306: Missing Authentication for Critical Function** (غياب المصادقة للوظائف الحرجة). أخطر نقطة نهاية على الخادم (تلك التي توفر قشرة تفاعلية) لا تحتوي على أي مصادقة على الإطلاق.

### الهجوم: من الاستشارة إلى مفاتيح AWS في 3 دقائق
تنزيل الأداة