
MongoDB CVE-2025-14847 ماسح تسرب ذاكرة Heap Memory | OP_COMPRESSED zlib ثغرة | Bug Bounty و أداة الفريق الأحمر
MongoBleed هو ماسح ضوئي عالي الأداء (PoC) لـ CVE-2025-14847، وهي ثغرة كشف الذاكرة في الكومة (heap) قبل المصادقة في مشغل MongoDB C++. تم تصميم الأداة للكشف السريع عن الحالات المعرضة للخطر عبر نطاقات شبكية كبيرة.
تنشأ الثغرة من قراءة خارج الحدود (OOB) في معالجة بروتوكول MongoDB السلكي لرسائل OP_COMPRESSED.
عندما يتلقى الخادم حزمة OP_COMPRESSED، فإنه يعتمد على حقل uncompressedSize الذي يوفره المهاجم لتخصيص مخزن مؤقت (buffer) لفك الضغط. إذا كانت البيانات المفكوكة الفعلية أصغر بكثير من uncompressedSize المزعوم، فإن المشغل يفشل في اقتطاع أو مسح المخزن المؤقت. ونتيجة لذلك، يعيد الخادم كتلة الذاكرة المخصصة بالكامل، والتي قد تحتوي على بيانات كومة غير مهيأة، مما قد يكشف معلومات حساسة مثل رموز الجلسة (session tokens) أو المؤشرات الداخلية أو أجزاء من استعلامات قاعدة بيانات أخرى.
asyncio للمسح عالي التزامنvulnerable_targets.txtgit clone https://github.com/Black1hp/mongobleed-scanner/
cd mongobleed-scanner
لا حاجة لاعتماديات خارجية (مكتبة Python القياسية فقط).
الاستخدام الأساسي:
python3 mongobleed.py -i targets.txt
الإعداد المتقدم:
python3 mongobleed.py -i targets.txt -c 100 -t 5
-i : ملف الإدخال الذي يحتوي على الأهداف (IP، نطاق، أو IP:port)-c : مستوى التزامن (الافتراضي: 50)-t : مهلة الاتصال بالثواني (الافتراضي: 5)يحدد الماسح الثغرة من خلال استغلال عدم تطابق الحجم أثناء مرحلة فك ضغط BSON:
OP_COMPRESSED مزيفة تحتوي على حمولة صغيرة مضغوطة بـ zlib على سبيل المثال 16-30 بايت .uncompressedSize في رأس الحزمة عمدًا إلى قيمة أكبر بكثير (على سبيل المثال، 64 كيلو بايت).MessageLength يتوافق مع حجم المخزن المؤقت الكبير المطلوب بدلاً من حجم الحمولة المفكوكة الفعلية.uncompressedSize المقدم من المهاجم لتحديد طول الاستجابة. نظرًا لأنه يفشل في تحديث هذا الطول بالبايتات الفعلية المكتوبة أثناء فك الضغط، فإنه يدفع بشكل أعمى المخزن المؤقت للكومة المخصص بالكامل - بما في ذلك الذاكرة غير المهيأة - إلى العميل.ملاحظة: يوضح الفيديو أعلاه الماسح وهو يحدد حالات متعددة قابلة للاختراق ويلتقط أجزاء الكومة في الوقت الفعلي.
Black1hp باحث أمني | صياد ثغرات | عضو فريق أحمر
هذه الأداة مخصصة لاختبارات الأمان والأبحاث المصرح بها فقط. المؤلف غير مسؤول عن أي استخدام غير مصرح به أو ضرر ناتج عن هذه الأداة.