CVE-2025-12562CVE-2025-12562是GitLab Community Edition(CE)和Enterprise Edition(EE)中的一个高危安全漏洞。该漏洞影响从11.10版本开始的所有版本,直到18.4.6、18.5.4和18.6.2之前的版本。漏洞的核心问题在于GitLab的GraphQL API实现中存在查询复杂度限制绕过机制。未经身份验证的远程攻击者可以构造恶意的GraphQL查询,利用查询嵌套、别名滥用等技术手段绕过原有的查询复杂度分析限制。当服务器处理这些精心设计的查询时,会消耗大量计算资源(CPU和内存),最终导致服务不可用,形成拒绝服务攻击。由于该漏洞无需任何认证即可利用,且可通过网络远程触发,因此具有极高的安全风险。GitLab官方已于2025年12月10日发布补丁版本18.6.2、18.5.4和18.4.6修复此问题。
该漏洞的根本原因在于GitLab GraphQL查询复杂度分析器的实现缺陷。GraphQL查询的复杂度分析通常通过计算查询的深度、字段数量和嵌套层数来评估查询的资源消耗,并设置阈值限制过于复杂的查询。然而,攻击者可以通过以下技术手段绕过这些限制:1)利用GraphQL别名(aliases)功能在单个查询中重复请求相同字段;2)使用查询片段(fragments)和内联片段(inline fragments)混淆复杂度计算;3)构造深层嵌套的查询结构;4)结合 introspection 查询获取完整的schema信息后进行针对性攻击。当服务器执行这些恶意查询时,会触发大量数据库查询和复杂的对象解析操作,导致CPU占用率急剧上升和内存耗尽。由于GraphQL查询通常在单一请求中执行复杂操作,攻击者只需发送少量请求即可对服务器造成严重影响。