CVE-2025-23061 - Mongoose कमांड इंजेक्शन
Mongoose < 8.9.5 में कमांड इंजेक्शन भेद्यता के लिए एक प्रूफ ऑफ कॉन्सेप्ट जो populate() फ़ंक्शन के match विकल्प को प्रभावित करता है।
भेद्यता विवरण
CVE ID: CVE-2025-23061
गंभीरता: CRITICAL (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: डाट फुंग ने Mongoose में एक गंभीर भेद्यता की पहचान की और Snyk को एक सुरक्षा रिपोर्ट प्रस्तुत की।
- 26 नवंबर, 2024: Mongoose ने इस भेद्यता को संबोधित करने और ठीक करने के लिए संस्करण 8.8.3 जारी किया।
- 2 दिसंबर, 2024: नेशनल वल्नरेबिलिटी डेटाबेस (NVD) ने इस भेद्यता के लिए CVE-2024-53900 का खुलासा किया।
- 17 दिसंबर, 2024: Mongoose के 8.8.3 पैच का विश्लेषण करने पर, डाट फुंग ने एक बायपास पाया जो अभी भी 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 को स्वच्छ करने में विफल रहता है
- हमलावर MongoDB सर्वर पर मनमाना जावास्क्रिप्ट निष्पादित करता है
प्रभाव
- सूचना प्रकटीकरण: उचित प्राधिकरण के बिना संवेदनशील डेटा तक पहुंच
- प्रमाणीकरण बाईपास: केवल व्यवस्थापक के लिए जानकारी प्राप्त करना
- मनमाना कोड निष्पादन: MongoDB सर्वर पर जावास्क्रिप्ट निष्पादित करना
- डेटा संशोधन: डेटाबेस रिकॉर्ड्स को संशोधित करने की संभावना
सेटअप और PoC चलाना
पूर्वापेक्षाएँ
- Node.js >= 14
- MongoDB स्थानीय रूप से चल रहा हो या कनेक्शन स्ट्रिंग के माध्यम से सुलभ हो
स्थापना
# Install dependencies
npm install
# Optional: Use specific MongoDB URI
export MONGODB_URI="mongodb://localhost:27017/mongoose_cve_poc"
असुरक्षित सर्वर चलाएँ
सर्वर http://localhost:3000 पर शुरू होगा
एक्सप्लॉइट चलाएँ
दूसरे टर्मिनल में:
संदर्भ
अस्वीकरण
यह PoC केवल शैक्षिक उद्देश्यों के लिए प्रदान किया गया है। कंप्यूटर सिस्टम तक अनधिकृत पहुंच अवैध है। इसका उपयोग केवल उन सिस्टमों पर करें जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट अनुमति है।