CVE-2025-23061 - حقن أوامر في Mongoose
إثبات مفهوم لثغرة حقن الأوامر في Mongoose < 8.9.5 التي تؤثر على خيار populate() في دالة match().
تفاصيل الثغرة
معرف CVE: CVE-2025-23061
الخطورة: حرجة (CVSS 9.0)
الحزمة المتأثرة: mongoose
الإصدارات الضعيفة:
- < 6.13.6
-
= 7.0.0 < 7.8.4
-
= 8.0.0 < 8.9.5
الجدول الزمني لـ CVE-2024-53900 و CVE-2025-23061
- 7 نوفمبر 2024: حدد Dat Phung ثغرة حرجة في Mongoose وأرسل تقريرًا أمنيًا إلى Snyk.
- 26 نوفمبر 2024: أصدرت Mongoose الإصدار 8.8.3 لمعالجة هذه الثغرة وإصلاحها.
- 2 ديسمبر 2024: كشفت قاعدة بيانات الثغرات الوطنية (NVD) عن CVE-2024-53900 لهذه الثغرة.
- 17 ديسمبر 2024: بعد تحليل تصحيح الإصدار 8.8.3 من Mongoose، وجد Dat Phung تجاوزًا لا يزال يتيح تنفيذ الأوامر عن بُعد (RCE). تم إرسال تقرير أمني مفصل إلى Tidelift.
- 13 يناير 2025: أصدرت Mongoose الإصدار 8.9.5، الذي قدم تصحيحًا محسّنًا يعالج التجاوز بشكل فعال.
- 15 يناير 2025: كشفت قاعدة بيانات الثغرات الوطنية (NVD) رسميًا عن CVE-2025-23061، مؤكدةً خطورة الثغرة المكتشفة حديثًا.
السبب الجذري
توجد هذه الثغرة بسبب إصلاح غير كامل لـ CVE-2024-53900. بينما يتم منع حقن $where المباشر، يمكن للمهاجمين تجاوز هذه الحماية عن طريق تداخل عوامل $where داخل عوامل منطقية مثل $and و $or وما إلى ذلك.
مسار الكود الضعيف:
- يقدم المستخدم الإدخال من خلال معامل
populate() match
- يستخدم التطبيق إدخال المستخدم غير المنقح مباشرة في استعلام match
- تفشل Mongoose في تنقية
$where عند تداخله داخل عوامل منطقية
- ينفذ المهاجم JavaScript عشوائيًا على خادم MongoDB
التأثير
- كشف المعلومات: الوصول إلى بيانات حساسة دون إذن مناسب
- تجاوز المصادقة: استرداد معلومات مخصصة للمسؤولين فقط
- تنفيذ كود عشوائي: تنفيذ JavaScript على خادم MongoDB
- تعديل البيانات: إمكانية تعديل سجلات قاعدة البيانات
إعداد وتشغيل إثبات المفهوم
المتطلبات الأساسية
- Node.js >= 14
- MongoDB قيد التشغيل محليًا أو يمكن الوصول إليه عبر سلسلة اتصال
التثبيت
# تثبيت التبعيات
npm install
# اختياري: استخدام URI محدد لـ MongoDB
export MONGODB_URI="mongodb://localhost:27017/mongoose_cve_poc"
تشغيل الخادم الضعيف
npm start
سيبدأ الخادم على http://localhost:3000
تشغيل الاستغلال
في طرفية أخرى:
node exploit.js
المراجع
إخلاء المسؤولية
تم توفير إثبات المفهوم هذا لأغراض تعليمية فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. استخدم هذا فقط على الأنظمة التي تمتلكها أو لديك إذن صريح لاختبارها.