文章总结: 本文复现MongoDBCVE-2025-14847漏洞,该漏洞因zlib解压缺陷导致攻击者可读取未初始化内存。文章列出了受影响版本(5.0.x至8.2.x)及修复版本,提供了Docker环境配置与POC执行命令,旨在验证该严重信息泄露风险。 综合评分: 88 文章分类: 漏洞POC,漏洞分析
复现MongoDB(CVE-2025-14847)CVSS8.7漏洞攻击
原创
qife
网络安全技术点滴分享
2026年1月2日 14:22 福建
漏洞详情
MongoDB的zlib消息解压缩功能中存在一个缺陷,该缺陷会返回已分配的缓冲区大小而非实际的解压数据长度。这使得攻击者能够读取未初始化的内存,具体方式为:
- 发送一个压缩消息,并夸大其未压缩大小声明
- MongoDB根据攻击者的声明分配一个大缓冲区
- zlib将实际数据解压到缓冲区的起始部分
- 该漏洞导致MongoDB将整个缓冲区视为有效数据
- 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 |
#
漏洞复现步骤
1.安装MongoDB漏洞测试环境(这里默认使用ubuntu系统并且已安装docker环境)
docker-compose.yml
version: '3.8'
services: mongodb-vulnerable: image: mongo:8.2.2 container_name: mongobleed-target ports: - "27017:27017" environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: SuperSecret123! MONGO_INITDB_DATABASE: secretdb volumes: - ./init/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro - mongodb_data:/data/db command: ["mongod", "--networkMessageCompressors", "zlib", "--bind_ip_all"] restart: unless-stopped
volumes: mongodb_data:
使用如下命令安装MongoDB漏洞环境,如下所示
docker compose up -d
2.运行poc获取泄露的内存数据,命令、获取到的结果如下所示
sudo python3 mongobleed.py
3.参考链接如下
https://github.com/joe-desimone/mongobleed.git
https://github.com/Neo23x0/mongobleed-detector.git
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络安全技术点滴分享 qife《复现MongoDB(CVE-2025-14847)CVSS8.7漏洞攻击》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。




![[代码审计]蓝凌EIS存在多个后台文件上传0day](/images/random/titlepic/4.jpg)



评论