GitLab高危漏洞可致实例崩溃(CVE-2025-10858 和 CVE-2025-8014)
GitLab 披露了多个高危拒绝服务(Denial-of-Service,DoS)漏洞,未经认证的攻击者可利用这些漏洞使自托管 GitLab 实例崩溃。这些漏洞影响 18.4.1、18.3.3 和 18.2.7 之前的社区版(Community Edition,CE)和企业版(Enterprise Edition,EE),攻击者可通过 HTTP 端点和 GraphQL API 发起攻击。管理员必须立即升级以防止服务中断和潜在的数据丢失。
高危 DoS 漏洞
最严重的两个漏洞(CVE-2025-10858 和 CVE-2025-8014)CVSS 评分为 7.5 分,攻击者可通过构造畸形的 JSON 负载或绕过 GraphQL 查询复杂度限制发起未经认证的拒绝服务攻击。
在(CVE-2025-10858)中,攻击者可向/api/v4/projects/:id/uploads
等端点发送特制的 JSON 文件,耗尽 CPU 和内存资源,导致 Rails Web 服务器无响应。该漏洞可能对多租户系统中共同托管的其他服务造成意外损害,且无需认证即可利用。
类似地,(CVE-2025-8014)利用无限制的 GraphQL 查询,攻击者通过向/api/graphql
构造深度嵌套或过于复杂的查询,可突破内部查询成本阈值,触发 unicorn 工作池崩溃循环。该漏洞还会影响自托管 GitLab 实例和内部图表,可能中断 CI/CD 流水线。
其他中危漏洞包括(CVE-2025-9958)(CVSS 6.8)和(CVE-2025-7691)(CVSS 6.5),分别导致信息泄露和权限提升。(CVE-2025-9958)通过/api/v4/registry/repositories/:id
端点向低权限用户暴露虚拟注册表配置,可能泄露注册表令牌。(CVE-2025-7691)则允许具有组管理权限的开发人员通过向/api/v4/groups/:group_id/members
构造 API 调用绕过 EE 后端角色检查,实现权限提升。
GraphQL 无界数组参数、blobSearch 和字符串转换方法中的多个 DoS 攻击向量 CVSS 评分较低,但仍可能导致性能下降。blobSearch 的 GraphQL 解析器在特制查询下可能进入无限循环,而 GitLab Ruby 中间件中的递归字符串转换会耗尽 Ruby VM 资源。
CVE编号 | 漏洞名称 | CVSS 3.1评分 | 严重等级 |
---|---|---|---|
CVE-2025-10858 | 通过特制JSON上传导致拒绝服务 | 7.5 | 高危 |
CVE-2025-8014 | 绕过查询复杂度限制导致拒绝服务 | 7.5 | 高危 |
CVE-2025-9958 | 虚拟注册表配置信息泄露 | 6.8 | 中危 |
CVE-2025-7691 | 开发者角色权限提升 | 6.5 | 中危 |
CVE-2025-10871 | 项目维护者分配角色时授权不当 | 3.8 | 低危 |
CVE-2025-10867 | GraphQL API blobSearch拒绝服务 | 3.5 | 低危 |
CVE-2025-5069 | 通过"移动问题"下拉菜单错误分配所有权 | 3.5 | 低危 |
CVE-2025-10868 | 通过字符串转换方法导致拒绝服务 | 3.5 | 低危 |
已修复版本
本次补丁更新将 GitLab CE 和 EE 升级至 18.4.1、18.3.3 和 18.2.7 版本,包含关键错误修复和安全补丁。GitLab Dedicated 客户已运行修复版本,自托管实例应立即升级。升级无需新的数据库迁移,多节点部署可通过/etc/gitlab/skip-auto-reconfigure
标志实现零停机更新。
该版本还捆绑了 PostgreSQL 16.10 升级,修复了(CVE-2025-8713)、(CVE-2025-8714)和(CVE-2025-8715)。18.4.1 版本的后向移植修复包括项目分叉、扫描器建议错误以及 HandleMalformedStrings 中间件的性能优化。
维护人员应及时应用这些补丁,确保 GitLab 实例的完整性和可用性。