
CVE-2025-61301 إثبات مفهوم يوضح رفض التحليل في CAPEv2 عبر التفرع التكراري للعمليات الذي يؤدي إلى تجاوز حدود BSON في MongoDB وأخطاء تسلسل orjson، مما يسبب تقارير غير مكتملة عن سلوك البرمجيات الخبيثة.
تؤثر ثغرة عالية الخطورة من نوع رفض التحليل على reporting/mongodb.py و reporting/jsondump.py في CAPEv2 (الالتزام 52e4b43، بتاريخ 2025-05-17)، وتسمح للمهاجمين الذين يمكنهم إرسال عينات بالتسبب في تقارير تحليل سلوكي ناقصة أو مفقودة عن طريق توليد بيانات سلوكية عميقة التداخل أو ضخمة الحجم تؤدي إلى تجاوز حدود BSON في MongoDB أو أخطاء التكرار في orjson عندما يتم تنفيذ العينة داخل بيئة الرمل.
CVSS v3.1: 7.5 (عالي)
المتجه: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
يعود السبب الجذري لهذه الثغرة إلى طريقة معالجة CAPEv2 لتقارير السلوك كبيرة الحجم والعميقة التداخل التي يتم توليدها أثناء التحليل الديناميكي للبرمجيات الخبيثة.
حد حجم مستند BSON في MongoDB:
يستخدم CAPEv2 MongoDB لتخزين تقارير التحليل، والتي لديها حد أقصى لحجم مستند BSON يبلغ 16 ميغابايت [1].
عندما تتجاوز التقارير هذا الحجم، غالبًا بسبب أشجار العمليات الواسعة أو استدعاءات API أو البيانات التكرارية، يرفض قاعدة البيانات الإدراج، مما يتسبب في فشل توليد التقرير.
حد عمق التداخل في MongoDB:
يفرض MongoDB أيضًا حدًا أقصى لعمق التداخل يبلغ 100 مستوى لكل مستند BSON.
يمكن للسلوكيات التكرارية للبرمجيات الخبيثة أن تتجاوز هذا الحد بسهولة، مما يؤدي إلى فشل الإدراج حتى عندما يكون حجم المستند أقل من 16 ميغابايت.
حدود التسلسل JSON في Python:
يعتمد CAPEv2 على مكتبة orjson في Python لتسلسل النتائج إلى JSON.
البنى العميقة التداخل أو التكرارية تتسبب في وصول المُسلسِل إلى حدود التكرار في Python، مما يؤدي إلى فشل التسلسل وإيقاف توليد التقرير [2].
التقليم ومعالجة الأخطاء:
يحاول CAPEv2 التخفيف من هذه المشكلات عن طريق تقليم أجزاء كبيرة من التقرير تدريجيًا (إزالة العقد الفرعية أو أشجار العمليات بأكملها).
ومع ذلك، فإن هذا غير كافٍ عندما يتجاوز تعقيد السلوك عتبات التقليم، مما يؤدي إلى فشل متكرر في حفظ التقرير.
هذه ثغرة رفض تحليل في CAPEv2 يمكن أن تتسبب في فشل محرك التحليل الديناميكي في التقاط النشاط السلوكي أو الإبلاغ عنه. يسمح استغلالها للخصوم بتجاوز الكشف السلوكي وإنتاج تقارير تحليل ناقصة أو مفقودة.
في خطوط المعالجة التي تعتمد على CAPEv2 للفرز أو إثراء معلومات التهديدات، يمكن أن يؤدي هذا الخلل إلى:
CAPEv2 — المستودع: https://github.com/kevoreilly/CAPEv2
معلومات الالتزام / البناء ذات الصلة
52e4b43a2cb508d3483819042cf8e4d8348f3a05[email protected])masterenzok/updates-01يوضح الجدول التالي أدلة من مهام تحليل متعددة، تُظهر كيف تؤدي الزيادة في التعقيد والمدة إلى فشل MongoDB والتسلسل، مما يؤدي إلى تقارير سلوكية غير مكتملة أو مفقودة.
الجدول 1: نتائج تحليل CAPEv2 تُظهر الارتباط بين تعقيد المهمة وحجم التقرير وشروط الفشل.
يقوم بتشغيل 5,000 عملية وينفذ فك تشفير XOR متعدد الجولات في وقت التشغيل لمحاكاة التهرب الواقعي. بالنسبة للنسخ المخصصة (جولات تكرار مختلفة، أو أطوال مفاتيح، أو أحجام عمليات)، يرجى التواصل مع المؤلفين للحصول على نسخة مخصصة.
تشغيل العرض التجريبي:
poc\vathos_demo.exe <IP> <PORT>
تأكد من تشغيل مستمع على عنوان IP/المنفذ المحدد (مثل nc أو ncat أو Metasploit أو أي مستمع C2) لملاحظة محاولات الاتصال. في بيئة الرمل التي تعمل بشكل صحيح، ستكون محاولة الاتصال مرئية؛ وفي ظل ظروف رفض التحليل الموصوفة، قد لا يظهر الاتصال في تقارير CAPEv2.
180+ ثانيةخيارات للتغيير:
full-proc-memory-dumpsimport-reconstruction-proc-dumpsstore_compressed = yes و store_compressed = noتأكد من أن MongoDB و orjson يستخدمان الحدود الافتراضية الخاصة بهما لهذه الاختبارات.
مع زيادة عمق شجرة العمليات وتعقيدها، قد تحدث حالات فشل في إعداد التقارير مثل:
orjsonقد يؤدي ذلك إلى أن CAPEv2:
الشكل 1 - سجلات الواجهة الخلفية تُظهر تحذيرات تفريغ JSON، وأخطاء orjson/التسلسل، وإدخالات MongoDB OperationFailure

الشكل 2 - لوحة المعلومات: failed_analysis

الشكل 3 - تبويب السلوك: "عذرًا! لا يوجد سلوك."

| المهلة (ثانية) | الإعدادات المخصصة | المدة (ثانية) | العمليات المسجلة | سجلات BSON (ملفات / الحجم) | حجم Report.json (كيلوبايت) | الأخطاء / التحذيرات | حالة السلوك |
|---|
| 60 | enforce-timeout | 413 | 24 | 25 / 126 KB | 613 | – | السلوك سليم |
| 60 | – | 252 | 38 | 39 / 200 KB | 923 | – | السلوك سليم |
| 60 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 230 | 42 | 43 / 230 KB | 1054 | – | السلوك سليم |
| 100 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 330 | 61 | 62 / 318 KB | 1482 | – | السلوك سليم |
| 100 | – | 277 | 81 | 82 / 493 KB | 2032 | – | السلوك سليم |
| 120 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 340 | 72 | 73 / 383 KB | 1793 | – | السلوك سليم |
| 120 | – | – | 88 | 89 / 475 KB | 2228 | – | السلوك سليم |
| 180 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | 414 | 90 | 91 / 492 KB | 2356 | MongoDB Code 15 | لا سلوك |
| 180 | – | 323 | 88 | 89 / 475 KB | 2228 | – | السلوك سليم |
| 200 | – | 413 | 119 | 120 / 645 KB | 3174 | MongoDB Code 15 | لا سلوك |
| 200 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout | – | – | 144 / 726 KB | – | تم بلوغ حد التكرار، MongoDB Code 15 | فشل إعداد التقارير |
| 300 | – | 513 | 146 | 147 / 779 KB | 3676 | MongoDB Code 15 | لا سلوك |
| 300 | full-proc-memory-dumps, import-reconstruction-proc-dumps, enforce-timeout, syscall | – | – | 167 / 892 KB | – | تم بلوغ حد التكرار، MongoDB Code 15 | فشل إعداد التقارير |