CVE-2025-14847CVE-2025-14847是MongoDB Server中的一个高危安全漏洞,源于Zlib压缩协议头中的长度字段不匹配问题。该漏洞允许未经身份验证的客户端通过发送特制的压缩协议请求,读取服务器堆内存中未初始化的数据。由于攻击者无需任何认证即可利用此漏洞,且CVSS评分达到7.5分(高危级别),因此对MongoDB服务的安全性构成严重威胁。攻击者可能利用此漏洞获取敏感信息,如用户凭据、会话令牌、数据库内容片段或其他存储在堆内存中的机密数据。此漏洞影响多个MongoDB Server版本,从v3.6到v8.2的所有主要版本分支均受影响,需要管理员尽快采取修复措施。
MongoDB Server在处理Zlib压缩协议时,使用OP_COMPRESSED操作码进行数据压缩传输。漏洞的核心问题在于协议头中的长度字段验证存在缺陷:当客户端发送一个压缩请求时,服务器根据协议头中声明的长度字段分配缓冲区,但在实际解压缩过程中,压缩数据的长度与声明的长度不匹配。这导致解压缩函数读取超出初始化数据边界的堆内存区域,将未初始化的内存内容作为有效数据返回给客户端。攻击者可以通过构造带有特定长度字段值的OP_COMPRESSED消息,触发目标内存区域的读取。由于MongoDB使用消息前缀协议,攻击者需要了解基本的Wire Protocol结构即可构造有效载荷。漏洞利用的关键在于精确控制压缩数据的实际大小与协议头中声明大小的差异,使解压缩器读取相邻的未初始化堆内存。