漏洞概述 漏洞类型: GraphQL 查询复杂度验证器指数级片段遍历拒绝服务(DoS) CVE编号: GHSA-mf3j-6cp4-m98c 问题描述: Parse Server 的 GraphQL 查询复杂度验证器存在指数级片段遍历漏洞。当查询包含递归/嵌套片段时,验证器会重复计算相同的片段,导致计算复杂度呈指数级增长,造成拒绝服务。 影响范围 受影响组件: 影响版本: 修复前版本(通过 commit 修复) 修复方案 核心修复策略:引入片段缓存机制 1. 新增 : 使用 Map 缓存已计算的片段结果,避免重复计算 2. 缓存内容: 每个片段缓存其字段数( )和最大深度增量( ) 3. 提前终止检查: 在遍历过程中增加对 和 的实时检查,超限立即返回 关键代码变更 POC代码(测试用例) POC说明: 该测试创建了一个二叉树结构的片段嵌套,每个片段展开两次下一个片段。无修复时复杂度为 O(2^n),会导致事件循环阻塞;修复后通过缓存降为 O(n),可立即拒绝。