
Mongobleed-Detektor CVE-2025-14847
Ein professioneller Schwachstellenscanner für CVE-2025-14847 (MongoBleed) – MongoDB-Speicherleck-Schwachstelle.
+================================================================+
| MongoBleed Scanner v1.3.0 |
| CVE-2025-14847 - MongoDB Memory Leak Vulnerability |
+================================================================+
CVE-2025-14847 (MongoBleed) ist eine kritische Speicherleck-Schwachstelle in der zlib-Komprimierungsbehandlung von MongoDB.
Bei der Verarbeitung komprimierter Nachrichten (OP_COMPRESSED mit zlib) weist MongoDB einen Puffer basierend auf dem vom Client bereitgestellten Feld uncompressedSize zu. Ein bösartiger Client kann eine größere Größe als die tatsächlichen Daten angeben, wodurch MongoDB nicht initialisierten Heap-Speicher zurückgibt, der vertrauliche Daten aus früheren Operationen enthält.
| Zweig | Verwundbare Versionen | Behobene Version |
|---|---|---|
| 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 | Alle Versionen | EOL – Kein Patch |
Es sind keine zusätzlichen Pakete erforderlich. Der Scanner verwendet nur die Python-Standardbibliothek.
# Default port (27017)
python scanner.py -t 192.168.1.100
# Custom port
python scanner.py -t 192.168.1.100:27018
# Comma-separated
python scanner.py -t 192.168.1.100,192.168.1.101:27018,db.example.com
# targets.txt (one per line, # for comments)
# 192.168.1.100
# 192.168.1.101:27018
# mongodb.example.com
python scanner.py -f targets.txt
# Plain text
python scanner.py -t 192.168.1.100 -o report.txt
# JSON (detailed)
python scanner.py -t 192.168.1.100 -o report.json
# CSV (spreadsheet)
python scanner.py -t 192.168.1.100 -o report.csv
| Option | Beschreibung |
|---|---|
-t, --targets | Kommagetrennte Ziele (Host oder Host:Port) |
-f, --file | Datei mit Zielen (eine pro Zeile) |
-o, --output | Exportdatei (.txt, .json, .csv) |
-q, --quiet | Nur Zusammenfassung anzeigen |
-v, --version | Version anzeigen |
-h, --help | Hilfe anzeigen |
| Symbol | Status | Beschreibung |
|---|---|---|
[!] | VULNERABLE | Bestätigt verwundbar, sofortiges Handeln erforderlich |
[?!] | POSSIBLY VULNERABLE | Version geschätzt, manuelle Überprüfung erforderlich |
[+] | SAFE | Gepatchte Version |
[~] | MITIGATED | Verwundbare Version, aber zlib deaktiviert |
[?] | UNKNOWN | Status konnte nicht ermittelt werden |
[-] | UNREACHABLE | Verbindung fehlgeschlagen |
+================================================================+
| 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 — Genaue Version erkanntv~8.2.x — Aus dem Wire-Protokoll geschätzt (~ kennzeichnet eine Schätzung)Die Schätzung erfolgt, wenn MongoDB 8.2+ eine Authentifizierung für Versionsbefehle verlangt. Der Scanner greift auf die Zuordnung der Wire-Protokoll-Version zurück.
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
Wenn die genaue Version nicht verfügbar ist (Authentifizierung erforderlich), schätzt der Scanner anhand von maxWireVersion:
| Wire-Version | MongoDB-Zweig |
|---|---|
| 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)
| Aktuelle Version | Aktualisieren auf |
|---|---|
| 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 # Remove 'zlib'
Oder über die Befehlszeile:
mongod --networkMessageCompressors snappy,zstd