作者 | Renato Losio
译者 | 刘雅梦
策划 | 丁晓昀
MongoDB 最近修补了 CVE-2025-14847,这是一个影响多个支持和遗留 MongoDB 服务器版本的漏洞。根据披露,该漏洞可以被未认证的攻击者以较低的复杂度远程利用,可能导致敏感数据和凭证的外泄。
这个漏洞被称为 MongoBleed,以臭名昭著的 Heartbleed 命名,CVSS 得分为 8.7,由对 zlib 压缩网络流量处理不当触发,允许未经身份验证的攻击者泄露未初始化的内存,并可能从受影响的 MongoDB 服务器窃取敏感数据,如凭证或令牌。根据 Wiz 的安全研究人员,该漏洞正在被广泛利用。
正如 MongoDB 的声明所述,MongoDB Atlas 上的托管实例已经被修补,但是如果自托管 MongoDB 不更新,仍然存在风险。强烈建议组织立即应用安全补丁,或禁用压缩并限制网络暴露。Merav Bar、Amitai Cohen、Yaara Shriki 和 Gili Tikochinski 解释:
CVE-2025-14847 源于 MongoDB 服务器基于 zlib 的网络消息解压缩逻辑中的一个缺陷,该逻辑在认证之前进行了处理。通过发送畸形的压缩网络数据包,未经身份验证的攻击者可以触发服务器错误处理解压缩的消息长度,导致返回给客户端未初始化堆内存。
根据 Wiz 文章,42% 的云环境中至少有一个易受攻击的 MongoDB 实例,Censys 报告称全球大约有 87,000 台服务器存在潜在的风险。由于该漏洞可以在没有认证或用户交互的情况下被利用,暴露在互联网上的数据库服务器面临特别高的风险。Wiz 团队补充道:
在代码层面,这个漏洞是由 message_compressor_zlib.cpp 中的错误长度处理引起的。受影响的逻辑返回了分配的缓冲区大小(output.length()),而不是实际解压缩数据的长度,从而允许过小或畸形的有效载荷暴露相邻的堆内存。
这个漏洞影响了自 2017 年以来发布的所有 MongoDB 版本。Linkfields Innovations 的软件开发人员 Gourav Boiri评论道:
MongoBleed 突出了即使是成熟的数据库,当暴露或打补丁时,也可能成为关键的攻击面。预认证内存泄露、主动漏洞攻击和 87K+ 暴露实例——提醒我们,数据库安全就是基础设施安全。
在“简单解释 MongoBleed”的文章中,Stanislav Kozlovski 解释了这一漏洞的工作原理,并警告说:
它非常容易被利用——只需要连接到数据库(不需要认证)。截至撰写本文时,它已经被修复,但一些 EOL 版本(3.6、4.0、4.2)将不会得到修复。
InfoSec 创始人和实践者 Eric Capuano 解释了 如何从日志中检测数据库服务器是否被利用。在一个流行的 Reddit 帖子中,用户 misteryuub 争论道:
很多人争论说开源代码比闭源代码更安全,或者安全问题会在开源代码中更快被发现。这种级别的漏洞存在是对这个论点的反驳。
Kozlovski 不同意:
当人们说开源更安全时,他们通常指的是有活跃社区的开源项目。Mongo 在 2017 年似乎没有这个,因为引入这个漏洞的 PR 没有在公共 GitHub 上被审查。
MongoDB 补丁版本现在可用于从 4.4 到 8.0 的所有支持版本。像 Percona Server for MongoDB 这样的分支也受到上游漏洞的影响。
https://www.infoq.com/news/2026/01/mongodb-mongobleed-vulnerability/
明:本文为 InfoQ 翻译,未经许可禁止转载。
热门跟贴