
MongoBleed: CVE-2025-14847 मेमोरी लीक खोज उपकरण
MongoBleed एक उच्च-प्रदर्शन सुरक्षा ऑडिटिंग उपकरण है जिसे CVE-2025-14847 का पता लगाने और प्रदर्शित करने के लिए डिज़ाइन किया गया है। यह कमजोरी एक अप्रमाणित, दूरस्थ हमलावर को MongoDB सर्वर से अप्रारंभित हीप मेमोरी के टुकड़े लीक करने की अनुमति देती है, जो zlib डीकंप्रेसन तर्क में लंबाई-बेमेल दोष का शोषण करती है।
इस स्क्रिप्ट का सुरक्षित परीक्षण करने के लिए, निम्नलिखित docker-compose.yml का उपयोग करके एक कमजोर MongoDB 8.2.2 इंस्टेंस चालू करें।
इंस्टेंस चलाएं:
docker-compose up -d
सुनिश्चित करें कि आपके पास Python 3.8+ स्थापित है। कोई बाहरी लाइब्रेरी की आवश्यकता नहीं है (बिल्ट-इन socket, zlib, और concurrent.futures का उपयोग करता है)।
बुनियादी स्कैन
python mongobleed.py --host 127.0.0.1 --port 27017
उन्नत विकल्प
python mongobleed.py --host 127.0.0.1 --threads 50 --range 100 10000 --output leak_dump.bin
स्क्रिप्ट एक गढ़ा हुआ OP_COMPRESSED (opcode 2012) संदेश भेजती है। यह पेलोड की असंपीड़ित लंबाई के बारे में झूठ बोलती है। MongoDB सर्वर "झूठे" आकार का एक हीप बफर आवंटित करता है, उसमें थोड़ी मात्रा में डेटा डीकंप्रेस करता है, और फिर गलती से पूरे अप्रारंभित बफर को क्लाइंट को वापस भेज देता है।
CVE-2025-14847 को हल करने का एकमात्र स्थायी तरीका MongoDB बाइनरी को ऐसे संस्करण में अपग्रेड करना है जिसमें OP_COMPRESSED लंबाई-सत्यापन तर्क के लिए फिक्स शामिल हो।
स्थायी फिक्स (अपग्रेड)
MongoDB से आधिकारिक पैच लागू करें। इन संस्करणों में यह सुनिश्चित करने के लिए एक अनिवार्य जांच शामिल है कि डीकंप्रेस्ड डेटा का आकार संदेश हेडर में uncompressedSize फील्ड से मेल खाता हो।
यदि अपटाइम आवश्यकताओं के कारण तत्काल अपग्रेड संभव नहीं है, तो आप सर्वर कॉन्फ़िगरेशन को संशोधित करके हमले के वेक्टर को ब्लॉक कर सकते हैं।
कमजोर कंप्रेसर अक्षम करें (अनुशंसित)
यह कमजोरी zlib कार्यान्वयन के लिए विशिष्ट है। आप zlib को अक्षम कर सकते हैं और सर्वर को snappy या zstd का उपयोग करने के लिए बाध्य कर सकते हैं, जो इस विशिष्ट हीप-ओवर-रीड बग से प्रभावित नहीं हैं।
कमांड लाइन के माध्यम से: निम्नलिखित फ्लैग के साथ mongod इंस्टेंस को पुनरारंभ करें (zlib के बहिष्कार पर ध्यान दें):
mongod --networkMessageCompressors snappy,zstd
कॉन्फ़िगरेशन फ़ाइल (mongod.conf) के माध्यम से:
net:
compression:
compressors: snappy,zstd
यह उपकरण केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए है। कंप्यूटर सिस्टम तक अनधिकृत पहुंच अवैध है। लेखक इस उपकरण के किसी भी दुरुपयोग के लिए जिम्मेदार नहीं है। अपने MongoDB इंस्टेंस को तुरंत 8.2.3+ या 8.0.17+ संस्करणों में पैच करें।
| प्रमुख शाखा | अनुशंसित सुरक्षित संस्करण |
|---|
| MongoDB 8.2 | 8.2.3 या बाद के संस्करण में अपग्रेड करें |
| MongoDB 8.0 | 8.0.17 या बाद के संस्करण में अपग्रेड करें |
| MongoDB 7.0 | 7.0.28 या बाद के संस्करण में अपग्रेड करें |
| MongoDB 6.0 | 6.0.27 या बाद के संस्करण में अपग्रेड करें |
| MongoDB 5.0 | 5.0.32 या बाद के संस्करण में अपग्रेड करें |
| MongoDB 4.0 | 4.4.30 या बाद के संस्करण में अपग्रेड करें |