
Mongobleed Detector CVE-2025-14847
Un escáner de vulnerabilidades profesional para CVE-2025-14847 (MongoBleed) - Vulnerabilidad de fuga de memoria en MongoDB.
+================================================================+
| MongoBleed Scanner v1.3.0 |
| CVE-2025-14847 - MongoDB Memory Leak Vulnerability |
+================================================================+
CVE-2025-14847 (MongoBleed) es una vulnerabilidad crítica de fuga de memoria en el manejo de compresión zlib de MongoDB.
Al procesar mensajes comprimidos (OP_COMPRESSED con zlib), MongoDB asigna un búfer basado en el campo proporcionado por el cliente. Un cliente malintencionado puede especificar un tamaño mayor que los datos reales, lo que provoca que MongoDB devuelva memoria del heap no inicializada que contiene datos sensibles de operaciones anteriores.
uncompressedSize| Rama | Versiones vulnerables | Versión 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 |
| 4.4.x | 4.4.0 - 4.4.29 | 4.4.30 |
| ≤4.2 | Todas las versiones | EOL - Sin parche |
No se requieren paquetes adicionales. El escáner utiliza solo la biblioteca estándar de Python.
# Puerto predeterminado (27017)
python scanner.py -t 192.168.1.100
# Puerto personalizado
python scanner.py -t 192.168.1.100:27018
# Separados por comas
python scanner.py -t 192.168.1.100,192.168.1.101:27018,db.example.com
# targets.txt (uno por línea, # para comentarios)
# 192.168.1.100
# 192.168.1.101:27018
# mongodb.example.com
python scanner.py -f targets.txt
# Texto plano
python scanner.py -t 192.168.1.100 -o report.txt
# JSON (detallado)
python scanner.py -t 192.168.1.100 -o report.json
# CSV (hoja de cálculo)
python scanner.py -t 192.168.1.100 -o report.csv
| Opción | Descripción |
|---|---|
-t, --targets | Objetivos separados por comas (host o host:puerto) |
-f, --file | Archivo con objetivos (uno por línea) |
-o, --output | Archivo de exportación (.txt, .json, .csv) |
-q, --quiet | Mostrar solo resumen |
-v, --version | Mostrar versión |
-h, --help | Mostrar ayuda |
| Símbolo | Estado | Descripción |
|---|---|---|
[!] | VULNERABLE | Vulnerable confirmado, se requiere acción inmediata |
[?!] | POSIBLEMENTE VULNERABLE | Versión estimada, requiere verificación manual |
[+] | SEGURO | Versión parcheada |
[~] | MITIGADO | Versión vulnerable pero con zlib deshabilitado |
[?] | DESCONOCIDO | No se pudo determinar el estado |
[-] | INALCANZABLE | Conexión fallida |
+================================================================+
| 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 VULNERABLE v8.0.16 zlib:ON -> Update to 8.0.17
[?!] 192.168.1.101:27018 POSSIBLY VULNERABLE v~8.2.x zlib:ON -> Check version, update to 8.2.3
[+] 192.168.1.102:27017 SAFE v8.0.17 zlib:ON
[~] 192.168.1.103:27017 MITIGATED v8.0.16 zlib:OFF (zlib disabled)
======================================================================
SCAN SUMMARY
======================================================================
Total targets scanned: 4
Reachable: 4
Unreachable: 0
----------------------------------------------------------------------
[!] VULNERABLE: 1
[?!] POSSIBLY VULN: 1 (version estimated, needs verification)
[+] SAFE (patched): 1
[~] MITIGATED: 1 (vulnerable version but zlib disabled)
[?] UNKNOWN: 0
======================================================================
VULNERABLE TARGETS REQUIRING IMMEDIATE ACTION:
----------------------------------------------------------------------
192.168.1.100:27017 v8.0.16 zlib:ON -> Upgrade to 8.0.17
v8.0.16 — Versión exacta detectadav~8.2.x — Estimado a partir del protocolo de cable (~ indica estimación)La estimación ocurre cuando MongoDB 8.2+ requiere autenticación para los comandos de versión. El escáner recurre al mapeo de versiones del protocolo de cable.
1. TCP Connection
└── Connect to MongoDB port
2. Version Detection
├── Send 'hello' command (get wire version, no auth required)
└── Send 'buildInfo' command (get exact version, may need auth)
3. Compression Check
└── Send zlib-compressed message, check if server accepts
4. Assessment
└── Compare version + zlib status against vulnerability database
Cuando la versión exacta no está disponible (requiere autenticación), el escáner estima a partir de maxWireVersion:
| Versión de cable | Rama de MongoDB |
|---|---|
| 25 | 8.0.x |
| 27 | 8.2.x |
| 21 | 7.0.x |
| 17 | 6.0.x |
| 13 | 5.0.x |
VULNERABLE = (version in vulnerable range) AND (zlib enabled)
MITIGATED = (version in vulnerable range) AND (zlib disabled)
SAFE = (version >= fixed version)
| Versión actual | Actualizar a |
|---|---|
| 8.2.0 - 8.2.2 | 8.2.3+ |
| 8.0.0 - 8.0.16 | 8.0.17+ |
| 7.0.0 - 7.0.27 | 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+ |
# mongod.conf
net:
compression:
compressors: snappy,zstd # Eliminar 'zlib'
O mediante línea de comandos:
mongod --networkMessageCompressors snappy,zstd
THIS TOOL IS PROVIDED FOR AUTHORIZED SECURITY TESTING ONLY.
You must obtain proper authorization before scanning any systems
you do not own or have explicit written permission to test.
Unauthorized access to computer systems is illegal.
The authors assume no liability for misuse of this tool.
| Código | Significado |
|---|---|
| 0 | Todos los objetivos seguros o mitigados |
| 1 | Se produjeron errores de conexión |
| 2 | Se encontraron objetivos vulnerables |
Útil para scripting:
python scanner.py -t mongodb.example.com
if [ $? -eq 2 ]; then
echo "ALERT: Vulnerable MongoDB detected!"
fi
Solo para pruebas de seguridad e investigación autorizadas.