
استغلال إثبات المفهوم بلغة Go لـ CVE-2025-14847 (MongoBleed)، وهي ثغرة كشف ذاكرة في MongoDB. يصنع مستندات BSON تالفة لتسريب ذاكرة الخادم غير المهيأة عبر رسائل الخطأ.
يحتوي هذا المستودع على إثبات مفهوم بلغة Go لاستغلال CVE-2025-14847، وهي ثغرة كشف للذاكرة في MongoDB يشار إليها عادةً باسم Mongobleed.
إثبات المفهوم هذا هو إعادة تنفيذ بلغة Go للاستغلال الأصلي بلغة Python بواسطة Joe Desimone، والمتاح هنا:
https://github.com/joe-desimone/mongobleed
يستغل هذا الاستغلال خللاً في فك ضغط zlib وتحليل BSON لتسريب ذاكرة غير مهيأة من خادم MongoDB عرضة للثغرة.
اقرأ المقالة - https://saereya.github.io/posts/mongobleed-cve-2025-14847/
تنجم CVE-2025-14847 عن معالجة غير صحيحة لرسائل OP_MSG المضغوطة في MongoDB. من خلال إنشاء مستند BSON غير صالح بطول مستند مبالغ فيه ولفّه في رسالة OP_COMPRESSED، قد يقرأ الخادم خارج حدود المخزن المؤقت بعد فك الضغط.
قد يؤدي هذا إلى تفسير MongoDB للذاكرة المتبقية كأسماء حقول BSON، والتي تُعكس بعد ذلك في رسائل الخطأ. وبتكرار هذه العملية عبر إزاحات مختلفة يمكن تسريب أجزاء من ذاكرة الخادم.
يقوم إثبات المفهوم هذا بما يلي:
OP_COMPRESSED من بروتوكول اتصال MongoDB السلكييُستخرج البيانات المسرّبة من سلاسل الخطأ مثل:
field name '...'type <n>تؤثر هذه الثغرة على إصدارات محددة من MongoDB قبل التصحيح الرسمي.
راجع النشرات الأمنية من MongoDB للحصول على نطاقات الإصدارات الدقيقة.
البناء:
go build -o mongobleed
التشغيل:
./mongobleed --host <target> --port 27017
الخيارات الاختيارية: --min-offset: Starting BSON document length (default: 20) --max-offset: Ending BSON document length (default: 8192)
[*] MongoBleed - CVE-2025-14847
[*] Targetting localhost:27017
[*] Offset: 20 -> 8192
[+] offset= 117 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
[+] offset= 119 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
[+] offset= 120 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
[+] offset= 121 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
يُقدم هذا الكود لأغراض تعليمية وبحثية فقط.
لا تشغّل هذه الأداة ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها. قد يكون الاستخدام غير المصرح به غير قانوني وغير أخلاقي.