【CVSS9.4】GitLabGraphQL未授权代码注入漏洞(CVE-2026-19478)"

admin 2026-10-17 08:31:02 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

【CVSS 9.4】GitLab GraphQL 未授权代码注入漏洞(CVE-2026-19478)

原创

chicken
chicken

爱坤sec

2026年8月19日 02:30
马来西亚

在小说阅读器读本章

去阅读

CVE-2026-19478

GitLab GraphQL 未授权代码注入 可远程修改/删除项目与用户数据

SecLab 安全研究 · 2026-08-17 公开披露

⚠️ CVSS 9.4 CRITICAL

攻击向量:网络 | 攻击复杂度:低 | 所需权限:无 | 用户交互:无

漏洞描述

GitLab 是业界最流行的开源 DevOps 平台之一,提供代码托管、CI/CD、Issue 追踪等功能,全球企业部署量巨大。CVE-2026-19478 影响 GitLab CE/EE 18.2 至 19.2.4 之前的所有版本。

远程未认证攻击者可利用该漏洞,通过精心构造的 GraphQL 查询,在特定条件下对公开项目与用户数据执行修改或删除操作——无需登录、无需交互、无需任何权限,CVSS 评分 9.4。

影响版本

18.x 系列:>= 18.2 且 < 18.11.11

19.0 系列:< 19.0.8

19.1 系列:< 19.1.6

19.2 系列:< 19.2.4

修复版本

✅ 修复版本:18.11.11 / 19.0.8 / 19.1.6 / 19.2.4(已发布)

⚠️ 建议立即升级对应系列的最新补丁版本

漏洞根因

漏洞位于 GitLab 的 GraphQL 层,属于 CWE-94 代码注入(fallback-field 注入):

缺陷1|fallback 字段生成可控

当 GraphQL 查询携带 @gl_introduced(未来指令)时,框架会为不存在的字段创建 fallback 字段——攻击者完全控制该字段名。

缺陷2|字段名注入 public\_send

攻击者选择的字段名被拼入底层 ActiveRecord 模型的 任意 public_send 调用——字段名即方法名,可调用 touch、deactivate、destroy 等任意公开方法。

缺陷3|无鉴权校验

该注入路径未做权限校验,未认证用户即可对公开项目/用户模型发起调用。

利用链

① 版本检测:确认目标 GitLab 版本处于受影响区间(/api/v4/version 或 /help)

② 行为探测(安全):发送 benign touch payload——漏洞实例返回 \"touch\": true,已修复实例返回 Field 'touch' doesn't exist

③ 数据修改:--user victim --mode modify → 调用 deactivate 停用公开用户

④ 数据删除:--project group/public-project --mode destroy → 调用 destroy 删除公开项目(不可逆)

⑤ 定制利用:--method NAME 指定任意方法名,扩展攻击面

公开 PoC

# 仓库: github.com/davkharrr/CVE-2026-19478-PoC
# 用法: python poc.py --url <URL> (--project <ns/proj> | --user <username>)
#        [--mode check|modify|destroy] [--method NAME] [--token TOKEN]

# 安全探测:
#   python3 poc.py --url https://gitlab.example.com --project group/public-project
#   (调用 Project#touch, 仅更新 updated_at, 无破坏)

# 修改用户:
#   python3 poc.py --url https://gitlab.example.com --user victim --mode modify
#   (deactivate 停用公开用户, 可逆)

# 删除项目:
#   python3 poc.py --url https://gitlab.example.com --project group/public-project --mode destroy
#   (删除公开项目, 不可逆)

FOFA 语法

app=\"GitLab\"
body=\"gitlab\" && header=\"gitlab\"

修复建议

1️⃣ 立即升级 GitLab 至 18.11.11 / 19.0.8 / 19.1.6 / 19.2.4 及以上

2️⃣ 审计 GraphQL 端点(/api/graphql)访问日志中的异常查询

3️⃣ 检查公开项目与用户数据是否有未授权的变更记录

⚠️ PoC 已公开且无认证要求,存在被批量利用的风险,请尽快处置


【CVSS9.4】GitLabGraphQL未授权代码注入漏洞(CVE-2026-19478)" 网络安全文章

【CVSS9.4】GitLabGraphQL未授权代码注入漏洞(CVE-2026-19478)"

CVE-2026-19478是GitLabCE/EE中一个CVSS9.4的未授权代码注入漏洞,影响18.2至19.2.4之前版本。攻击者无需认证即可通过构造的GraphQL查询,利用fallback字段注入调用public\\_send方法,远程修改或删除公开项目与用户数据。PoC已公开,存在批量利用风险。建议立即升级至18.11.11、19.0.8、19.1.6或19.2.4修复版本,并审计GraphQL端点日志。
虚假信息实战:当大模型一本正经地胡说八道" 网络安全文章

虚假信息实战:当大模型一本正经地胡说八道"

本文深入分析OWASPLLM09虚假信息问题,指出大模型因训练数据噪声、概率生成本质、缺乏事实grounding及对齐取悦用户等成因,天生倾向于输出看似合理但错误的内容。与数据投毒不同,这是模型自身倾向。文章提出四道检测防线:事实核验、引用溯源、置信度评估、人工复核,并给出加固建议如强制检索、引用可溯源、输出置信度及留痕日志。强调模型输出应视为草稿,可信度需靠多层机制兜底。
从国家扶贫黑产平台到服务器接管" 网络安全文章

从国家扶贫黑产平台到服务器接管"

本文详细记录了一次红队渗透测试过程,从静态App落地页开始,通过前端源码逆向发现客服系统,利用无鉴权配置、IDOR漏洞、弱口令和任意文件上传等漏洞链,最终实现服务器RCE、内核提权并接管宝塔面板。测试中发现了涉及1.03亿资金流水的虚假扶贫诈骗平台,揭露了其利用托儿和虚假承诺进行诈骗的完整手法。文章提供了具体的漏洞利用步骤和取证数据,对安全从业者具有实战参考价值。
评论:0   参与:  0