漏洞概述 漏洞类型: GraphQL 复杂度验证器指数级片段遍历拒绝服务 (DoS) CVE编号: GHSA-mf9j-6p94-m8bc, GHSA-mfj8-dp5d-m8bc 问题描述: Parse Server 的 GraphQL 查询复杂度验证器存在漏洞,攻击者可通过构造具有指数级片段扇出(fragment fan-out)的恶意查询,导致服务器在验证查询复杂度时陷入极长的处理时间,造成拒绝服务。 影响范围 受影响版本: 9.7.1-alpha.4 至 9.7.0-alpha.12 之间 修复版本: 9.7.0-alpha.12 组件: 修复方案 核心修复策略 1. 引入片段缓存机制: 使用 缓存已计算过的片段复杂度,避免重复计算 2. 提前终止机制: 在遍历过程中实时检查 和 限制,超限立即返回 3. 优化深度计算: 记录 而非重新遍历整个片段树 关键代码变更 新增片段缓存与提前终止逻辑: 调用处传入限制参数: POC/测试代码 修复补丁中包含的测试用例,演示了指数级片段扇出攻击模式: 攻击模式说明: 该POC构造了一个二叉树结构的片段嵌套,每个片段 展开两个 ,形成 个字段访问,无修复时会导致事件循环阻塞。