
CVE-2025-14847 MongoBleed - MongoDB メモリリーク脆弱性 PoC
👨💻 著者: Furkan KAYAPINAR (@FurkanKAYAPINAR)
⚠️ 教育目的専用
MongoDB Server における認証不要の重大なメモリリーク脆弱性のためのラボ環境とエクスプロイトスクリプトです。
CVE-2025-14847 (MongoBleed) は、MongoDB Server の zlib 圧縮処理における、認証不要の重大なメモリリーク脆弱性です。
| 属性 | 値 |
|---|---|
| CVE ID | CVE-2025-14847 |
| CVSS スコア | 8.7 (High) |
| 攻撃ベクトル | Network |
| 認証 | 不要 |
| 開示日 | December 19, 2025 |
この脆弱性は message_compressor_zlib.cpp に存在します。OP_COMPRESSED メッセージを処理する際に、以下の問題が発生します:
uncompressedSize に基づいてバッファを割り当てる漏えいしたデータには以下が含まれる可能性があります:
# Clone repository
git clone https://github.com/FurkanKAYAPINAR/CVE-2025-14847-MongoDB.git
cd CVE-2025-14847-MongoDB
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
テスト用に脆弱な MongoDB インスタンスを起動します:
cd lab
# Start vulnerable MongoDB (6.0.26 with zlib enabled)
docker-compose up -d
# Verify it's running
docker-compose ps
# Load sample data (optional)
./setup.sh load-data
# Stop lab
docker-compose down
# Single target
python exploit/mongobleed.py -u 127.0.0.1
# With specific port
python exploit/mongobleed.py -u 127.0.0.1 -p 27017
# Save leaked data to file
python exploit/mongobleed.py -u 127.0.0.1 -o leaked_data.bin
# Multiple iterations for more data
python exploit/mongobleed.py -u 127.0.0.1 -i 20
# Quiet mode (less output)
python exploit/mongobleed.py -u 127.0.0.1 -q
# Without hex dump (text output)
python exploit/mongobleed.py -u 127.0.0.1 --text
# Update to patched version
# Example for MongoDB 6.x
sudo apt-get update
sudo apt-get install mongodb-org=6.0.27
# Start mongod without zlib
mongod --networkMessageCompressors snappy,zstd
# Or in mongod.conf
net:
compression:
compressors: snappy,zstd
python remediation/verify_fix.py --target 127.0.0.1 --port 27017
🚨 警告
このツールは教育および許可されたセキュリティテストの目的のみで提供されています。
- コンピュータシステムへの不正アクセスは違法です
- あなたの行動に対する責任はすべてあなた自身にあります
- 作者は誤用に対するいかなる責任も負いません
本ツールを使用することで、対象システムをテストする適切な権限を有していることに同意したものとみなされます。
貢献を歓迎します! まず CONTRIBUTING.md をお読みください。
このプロジェクトは MIT ライセンスの下でライセンスされています - LICENSE ファイルを参照してください。
| 対象バージョン範囲 | 修正済みバージョン |
|---|
| 8.2.0 - 8.2.2 | 8.2.3 |
| 8.0.0 - 8.0.16 | 8.0.17 |
| 7.0.0 - 7.0.26 | 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 |
| 4.2, 4.0, 3.6 の全バージョン | EOL - 直ちにアップグレード |