CVE-2026-9746CVE-2026-9746是MongoDB Server中的一个拒绝服务漏洞。该漏洞源于changestreams功能在处理$_requestReshardingResumeToken时与exchange选项组合使用时的设计缺陷。当用户使用changestreams并携带$_requestReshardingResumeToken参数,同时启用exchange选项时,MongoDB服务器会触发内部不变量检查(invariant)失败,导致服务器进程崩溃。攻击者需要拥有一个具有基本读取权限的低权限用户账户即可触发此漏洞。无需特殊的系统权限或复杂的攻击准备,攻击者只需登录数据库后执行特定的流查询命令即可使服务器不可用。此漏洞严重影响系统的可用性,属于DoS类漏洞,建议尽快应用官方安全更新。
该漏洞的技术根源在于MongoDB的changestreams(变更流)功能在处理resharding场景下的恢复令牌时存在状态管理问题。当服务器接收到包含$_requestReshardingResumeToken选项的changestream请求,并且该请求同时指定了exchange选项时,会导致服务器内部状态不一致。具体来说,服务器在尝试将resharding操作的恢复令牌与exchange功能进行协调时,未能正确处理某些边界条件,从而触发了服务器内部的invariant断言失败。这个invariant是MongoDB用于确保内部状态一致性的调试机制,当它被触发时,服务器进程会立即终止以防止潜在的数据损坏或不一致状态。虽然这是一个服务器端崩溃漏洞,但由于它需要有效的数据库认证,攻击复杂度相对较高。该漏洞影响MongoDB Server的changestream处理模块,属于数据访问层的逻辑缺陷。攻击者可以利用此漏洞对数据库服务进行拒绝服务攻击,导致所有依赖该数据库的应用服务中断。