
Mongobleed Detector CVE-2025-14847
Um scanner profissional de vulnerabilidades para CVE-2025-14847 (MongoBleed) – Vulnerabilidade de vazamento de memória no MongoDB.
+================================================================+
| MongoBleed Scanner v1.3.0 |
| CVE-2025-14847 - MongoDB Memory Leak Vulnerability |
+================================================================+
CVE-2025-14847 (MongoBleed) é uma vulnerabilidade crítica de vazamento de memória no tratamento de compressão zlib do MongoDB.
Ao processar mensagens comprimidas (OP_COMPRESSED com zlib), o MongoDB aloca um buffer com base no campo uncompressedSize fornecido pelo cliente. Um cliente malicioso pode especificar um tamanho maior que os dados reais, fazendo com que o MongoDB retorne memória heap não inicializada contendo dados sensíveis de operações anteriores.
| Ramo | Versões Vulneráveis | Versão Corrigida |
|---|---|---|
| 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 | Todas as versões | EOL – Sem patch |
Nenhum pacote adicional necessário. O scanner usa apenas a biblioteca padrão do Python.
# Porta padrão (27017)
python scanner.py -t 192.168.1.100
# Porta personalizada
python scanner.py -t 192.168.1.100:27018
# Separados por vírgula
python scanner.py -t 192.168.1.100,192.168.1.101:27018,db.example.com
# targets.txt (um por linha, # para comentários)
# 192.168.1.100
# 192.168.1.101:27018
# mongodb.example.com
python scanner.py -f targets.txt
# Texto simples
python scanner.py -t 192.168.1.100 -o report.txt
# JSON (detalhado)
python scanner.py -t 192.168.1.100 -o report.json
# CSV (planilha)
python scanner.py -t 192.168.1.100 -o report.csv
| Opção | Descrição |
|---|---|
-t, --targets | Alvos separados por vírgula (host ou host:porta) |
-f, --file | Arquivo com alvos (um por linha) |
-o, --output | Arquivo de exportação (.txt, .json, .csv) |
-q, --quiet | Mostrar apenas o resumo |
-v, --version | Mostrar versão |
-h, --help | Mostrar ajuda |
| Símbolo | Status | Descrição |
|---|---|---|
[!] | VULNERÁVEL | Confirmado vulnerável, ação imediata necessária |
[?!] | POSSIVELMENTE VULNERÁVEL | Versão estimada, necessita verificação manual |
[+] | SEGURO | Versão corrigida |
[~] | MITIGADO | Versão vulnerável, mas zlib desabilitado |
[?] | DESCONHECIDO | Não foi possível determinar o status |
[-] | INALCANÇÁVEL | Falha na conexão |
+================================================================+
| MongoBleed Scanner v1.3.0 |
| CVE-2025-14847 - MongoDB Memory Leak Vulnerability |
+================================================================+
| LEGAL: Authorized security testing only. Obtain permission |
| before scanning systems you do not own. |
+================================================================+
[*] Loaded 4 target(s)
SCAN RESULTS:
----------------------------------------------------------------------
[!] 192.168.1.100:27017 VULNERÁVEL v8.0.16 zlib:ON -> Atualizar para 8.0.17
[?!] 192.168.1.101:27018 POSSIVELMENTE VULNERÁVEL v~8.2.x zlib:ON -> Verificar versão, atualizar para 8.2.3
[+] 192.168.1.102:27017 SEGURO v8.0.17 zlib:ON
[~] 192.168.1.103:27017 MITIGADO v8.0.16 zlib:OFF (zlib desabilitado)
======================================================================
RESUMO DA VARREDURA
======================================================================
Total de alvos escaneados: 4
Atingíveis: 4
Inalcançáveis: 0
----------------------------------------------------------------------
[!] VULNERÁVEL: 1
[?!] POSSIVELMENTE VULN: 1 (versão estimada, necessita verificação)
[+] SEGURO (corrigido): 1
[~] MITIGADO: 1 (versão vulnerável mas zlib desabilitado)
[?] DESCONHECIDO: 0
======================================================================
ALVOS VULNERÁVEIS QUE REQUEREM AÇÃO IMEDIATA:
----------------------------------------------------------------------
192.168.1.100:27017 v8.0.16 zlib:ON -> Atualizar para 8.0.17
v8.0.16 — Versão exata detectadav~8.2.x — Estimada a partir do protocolo wire (~ indica estimativa)A estimativa ocorre quando o MongoDB 8.2+ exige autenticação para comandos de versão. O scanner recorre ao mapeamento da versão do protocolo wire.
1. Conexão TCP
└── Conectar à porta do MongoDB
2. Detecção da Versão
├── Enviar comando 'hello' (obter versão wire, sem autenticação necessária)
└── Enviar comando 'buildInfo' (obter versão exata, pode precisar de autenticação)
3. Verificação de Compressão
└── Enviar mensagem comprimida com zlib, verificar se o servidor aceita
4. Avaliação
└── Comparar versão + status zlib com base de dados de vulnerabilidades
Quando a versão exata não está disponível (autenticação necessária), o scanner estima a partir do maxWireVersion:
| Versão Wire | Ramo MongoDB |
|---|---|
| 25 | 8.0.x |
| 27 | 8.2.x |
| 21 | 7.0.x |
| 17 | 6.0.x |
| 13 | 5.0.x |
VULNERÁVEL = (versão no intervalo vulnerável) E (zlib ativado)
MITIGADO = (versão no intervalo vulnerável) E (zlib desativado)
SEGURO = (versão >= versão corrigida)