
Go-Proof-of-Concept-Exploit für CVE-2025-14847 (MongoBleed), eine MongoDB-Speicheroffenlegungsschwachstelle. Erstellt manipulierte BSON-Dokumente, um nicht initialisierten Serverspeicher über Fehlermeldungen zu leaken.
Dieses Repository enthält einen Go-Proof-of-Concept-Exploit für CVE-2025-14847, eine MongoDB-Speicheroffenlegungsschwachstelle, die allgemein als Mongobleed bezeichnet wird.
Dieser PoC ist eine Go-Neuimplementierung des ursprünglichen Python-Exploits von Joe Desimone, verfügbar hier:
https://github.com/joe-desimone/mongobleed
Der Exploit nutzt einen Fehler bei der zlib-Dekomprimierung und beim BSON-Parsing aus, um nicht initialisierten Speicher von einem verwundbaren MongoDB-Server auszulesen.
Lies den Blogbeitrag - https://saereya.github.io/posts/mongobleed-cve-2025-14847/
CVE-2025-14847 wird durch die unsachgemäße Verarbeitung komprimierter OP_MSG-Nachrichten in MongoDB verursacht. Durch Erstellen eines fehlerhaften BSON-Dokuments mit einer überhöhten Dokumentlänge und Verpacken in einer OP_COMPRESSED-Nachricht kann der Server über die Grenzen des dekomprimierten Puffers hinaus lesen.
Dies kann dazu führen, dass MongoDB übrig gebliebenen Speicher als BSON-Feldnamen interpretiert, die dann in Fehlermeldungen zurückgespiegelt werden. Wenn dieser Vorgang mit verschiedenen Offsets wiederholt wird, können Fragmente des Serverspeichers ausgelesen werden.
Dieser PoC:
OP_COMPRESSED-Nachricht des MongoDB-Wire-ProtokollsAusgelesene Daten werden aus Fehlerstrings extrahiert, wie zum Beispiel:
field name '...'type <n>Diese Schwachstelle betrifft bestimmte MongoDB-Versionen vor dem offiziellen Patch.
Genauere Versionsbereiche findest du in den MongoDB-Sicherheitshinweisen.
Kompilieren:
go build -o mongobleed
Ausführen:
./mongobleed --host <target> --port 27017
Optionale Flags: --min-offset: Starting BSON document length (default: 20) --max-offset: Ending BSON document length (default: 8192)
[*] MongoBleed - CVE-2025-14847
[*] Targetting localhost:27017
[*] Offset: 20 -> 8192
[+] offset= 117 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
[+] offset= 119 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
[+] offset= 120 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
[+] offset= 121 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
Dieser Code wird ausschließlich zu Bildungs- und Forschungszwecken bereitgestellt.
Führe dieses Tool nicht gegen Systeme aus, die dir nicht gehören oder für die du keine ausdrückliche Erlaubnis zum Testen hast. Unbefugte Nutzung kann illegal und unethisch sein.