CVE-2026-9749CVE-2026-9749是MongoDB数据库中的一个拒绝服务漏洞,CVSS评分6.5,属于中危级别。该漏洞源于MongoDB聚合管道中内部$exchange阶段的实现缺陷。当使用$exchange阶段并配置key-range partitioning和order-preserving delivery时,如果单个key range产生足够多的文档以填满其exchange buffer,服务器会到达检测到完整per-consumer buffer的代码路径。然而,此时该key range的内部"high watermark"未能按预期更新,导致服务器资源管理异常,最终可能引发拒绝服务条件。此漏洞无需用户交互,攻击者仅需低权限即可触发,影响MongoDB服务器的可用性。
该漏洞的技术根源在于MongoDB聚合管道的$exchange阶段处理机制。当执行包含$exchange阶段的聚合管道时,系统支持key-range partitioning(键范围分区)和order-preserving delivery(保序交付)功能。在特定场景下,当某个key range路由到同一消费者的文档数量过多,导致该key range的exchange buffer被填满时,服务器会进入检测full per-consumer buffer的代码分支。问题在于,此时该key range的"high watermark"(高水位标记)没有被正确更新。高水位标记用于追踪缓冲区使用状态和触发必要的资源清理操作。由于该值未更新,系统可能会继续向已满的缓冲区写入数据或无法正确释放资源,导致内存耗尽、服务性能下降或进程崩溃。攻击者可通过构造特定的聚合查询,持续触发此条件来实现拒绝服务攻击。