CVE-2025-2934CVE-2025-2934是GitLab社区版(CE)和企业版(EE)中存在的一个拒绝服务(DoS)漏洞。该漏洞影响自5.2版本以来的所有GitLab版本,具体影响范围包括18.2.8之前的18.2.x版本、18.3.4之前的18.3.x版本以及18.4.2之前的18.4.x版本。该漏洞由GitLab安全团队发现并通过HackerOne平台报告(报告编号3058791)。
该漏洞允许经过身份验证的低权限攻击者通过配置恶意的Webhook端点来触发拒绝服务条件。Webhook是GitLab中用于在特定事件发生时向外部URL发送HTTP POST请求的机制,攻击者可以利用这一功能,通过精心构造的HTTP响应来消耗GitLab服务器资源,导致服务不可用。该漏洞的CVSS 3.1评分为4.3分,属于中等严重级别,攻击向量为网络(AV:N),需要低权限认证(PR:L),无需用户交互(UI:N),对机密性影响低(C:L),对完整性无影响(I:N),对可用性影响低(A:L)。
GitLab已于2025年10月8日发布补丁版本(18.4.2、18.3.4和18.2.8)来修复该漏洞。鉴于GitLab在企业DevOps流程中的核心地位,该漏洞可能对依赖GitLab进行代码托管、CI/CD和项目管理的组织造成服务中断风险。
GitLab的Webhook功能允许用户在项目或系统级别配置HTTP回调,当特定事件(如代码推送、合并请求、Issue创建等)发生时,GitLab会向预配置的URL发送HTTP POST请求携带事件数据。
该漏洞的核心问题在于GitLab处理Webhook响应时缺乏充分的资源限制和超时控制。当攻击者配置一个恶意的Webhook端点时,该端点可以返回以下类型的恶意响应来触发拒绝服务:
1. **超大响应体**:恶意端点返回包含海量数据的HTTP响应体,迫使GitLab服务器分配大量内存来接收和解析响应数据。
2. **慢速响应(Slow Response)**:恶意端点以极慢的速度发送响应数据,利用HTTP keep-alive连接保持活跃状态,消耗GitLab的连接池资源。
3. **大量重定向**:恶意端点返回大量HTTP重定向(如301/302),迫使GitLab跟随重定向链,消耗网络资源和处理能力。
4. **畸形HTTP响应**:返回格式异常的HTTP响应(如无效的Content-Length、Transfer-Encoding冲突等),导致GitLab的HTTP解析器进入异常状态或无限循环。
由于攻击者只需低权限账户即可配置项目级别的Webhook,且GitLab在处理这些恶意响应时未能实施有效的资源限制(如响应大小限制、连接超时、并发限制等),攻击者可以通过反复触发Webhook事件来持续消耗服务器资源,最终导致GitLab服务不可用,影响所有正常使用该实例的用户。