
CVE-2025-14847 explaination and lab
संदर्भ CVE : CVE-2025-14847
यह रिपॉजिटरी एक शैक्षिक लैब है जो डेटाबेस वायर प्रोटोकॉल में अक्सर "संपीड़न फ्रेमिंग / आकार-मेटाडेटा मेमोरी डिस्क्लोज़र" के रूप में वर्णित समस्याओं के वर्ग के पीछे की अवधारणा को प्रदर्शित करती है।
यह रक्षात्मक समझ का समर्थन करने के लिए लिखा गया है: MongoDB नेटवर्क संपीड़न कैसे वार्तालापित और फ्रेम किया जाता है, आकार फ़ील्ड क्यों मायने रखते हैं, और मजबूत पार्सर अनपेक्षित मेमोरी एक्सपोज़र को कैसे रोकते हैं।
CVE संदर्भ पर ध्यान दें: यह लैब CVE-2025-14847 के रूप में संदर्भित विचार के आसपास तैयार की गई है। यह रिपॉजिटरी किसी विशिष्ट विक्रेता बग को मान्य, पुनरुत्पादित या शोषण नहीं करती है या यह दावा नहीं करती है कि कोई विशेष MongoDB संस्करण प्रभावित है। यह सामान्य विफलता मोड (संपीड़ित पेलोड के आसपास बेमेल आकार मेटाडेटा) और शमन पर केंद्रित है।
यह रिपॉजिटरी शामिल नहीं करती (और इसका उपयोग नहीं किया जाना चाहिए) किसी विशिष्ट CVE के लिए कौन से MongoDB संस्करण कमजोर या पैच किए गए हैं, इसके प्रमाण के रूप में।
किसी रिपोर्ट के लिए "कमजोर" बनाम "पैच किया गया" संस्करणों को सही ढंग से दस्तावेज़ित करने के लिए, CVE के लिए आधिकारिक विक्रेता सलाह / रिलीज़ नोट्स का उपयोग करें और उसे उद्धृत करें।
आप जो चला रहे हैं उसे सत्यापित करने के लिए व्यावहारिक कदम:
docker compose exec mongodb mongod --versiondocker compose exec mongodb mongosh --quiet --eval "db.version()"mongod --versionmongosh --quiet --eval "db.version()"यदि आप उस सलाह लिंक को साझा करते हैं जिसका आप उपयोग कर रहे हैं, तो मैं बिना अनुमान लगाए README में एक साफ "प्रभावित / ठीक किया गया" तालिका प्रारूपित कर सकता हूं।
यह लैब एक संपीड़न फ्रेमिंग / आकार-मेटाडेटा बेमेल विफलता मोड को दर्शाती है:
OP_COMPRESSED लिफाफा अधिक आकार फ़ील्ड जोड़ता है (बाहरी संदेश लंबाई, घोषित असम्पीडित आकार, और आंतरिक संदेश की अपनी लंबाई)।विस्तृत फ्रेमिंग वॉकथ्रू के लिए protocol_overview.md देखें।
लैब के अंत तक, आपको सक्षम होना चाहिए:
यह करती है:
compression: ["zlib"] सहित एक असम्पीडित hello भेजेंOP_COMPRESSED संदेश भेजेंयह नहीं करती:
docker-compose.yml – zlib संपीड़न सक्षम और केवल लोकलहोस्ट-एक्सपोज़र के साथ एक MongoDB कंटेनर चलाता है।protocol_overview.md – वायर प्रोटोकॉल + BSON + संपीड़न वर्कफ़्लो + वैचारिक कमजोरी स्पष्टीकरण।mitigation.md – रक्षा मार्गदर्शन: पैचिंग, कॉन्फ़िग, और डिटेक्शन विचार।lab_probe.py – मूल जांच जो संपीड़न पर वार्तालाप करती है और संदेश आकार को सुरक्षित रूप से लॉग करती है।इस रिपॉजिटरी निर्देशिका से:
docker compose up -d
पुष्टि करें कि यह चल रहा है:
docker compose ps
python .\lab_probe.py
अपेक्षित आउटपुट:
hello से वार्तालापित कंप्रेसर प्रिंट करता हैhello भेजता है और दोनों संपीड़ित और विघटित संदेश आकार लॉग करता हैpython .\lab_probe.py --toy-demo
यह केवल स्थानीय पार्सिंग जाँच चलाता है ताकि यह दर्शाया जा सके कि आकार सत्यापन क्यों मायने रखता है।
docker compose down
127.0.0.1:27017 से बंधा है।