紧急插播!GitLab曝9.4分高危漏洞,GraphQL竟成黑客“无鉴权删库”后门?

admin 2026-08-22 04:37:23 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: GitLab紧急发布带外安全更新修复两个高危漏洞:CVE-2026-19478评分9.4,无需鉴权即可远程删除公共项目和用户数据,源于GraphQL自定义指令解析时权限校验旁路;CVE-2026-19650评分7.1,允许通过GET请求执行GraphQLmutations导致CSRF攻击。私有化部署用户需立即升级至19.2.4/19.1.6/19.0.8/18.11.11版本,官方未提供老版本独立补丁。 综合评分: 82 文章分类: 漏洞分析,web安全,应急响应,漏洞预警,安全工具


紧急插播!GitLab 曝 9.4 分高危漏洞,GraphQL 竟成黑客“无鉴权删库”后门?

原创

Kit Chung Kit Chung

安全圈动向

2026年8月19日 08:03 广东

在小说阅读器读本章

去阅读

大家好,就在 8 月 17 号,GitLab 打破了他们常规的“周三打补丁”节奏,紧急发布了一个带外安全更新。能让官方这么火急火燎、连固定的发布日都等不及的,必定不是小事。

果不其然,这次修的是一个 CVSS 评分高达 9.4 的严重(Critical)漏洞。一旦被利用,黑客甚至不需要账号密码,就能对你的代码库“痛下杀手”。

废话不多说,我带大家直接进入技术吃瓜环节,深度扒一扒这次的漏洞细节。

💣 核心风暴:CVE-2026-19478 无鉴权“删库”

这次的主角漏洞被追踪为 CVE-2026-19478。它的破坏力在于其极其宽松的触发条件:

  • 无需鉴权
  • 无需受害者交互
  • 基于网络远程利用

这意味着,黑客只要能访问到你的 GitLab 实例网络端口,就能远程修改甚至删除公共项目和用户数据。

🔍 技术原理解析:GraphQL Directive 是怎么惹祸的?

虽然 GitLab 官方出于安全考虑,要到今年 11 月中旬(即补丁发布 90 天后)才会公开具体的利用代码(POC),但他们在公告中透出了一个极其关键的技术落脚点:GraphQL directive(指令)。

如果你对 GraphQL 的底层实现有研究,就会知道 Directive(如 @include, @skip 或服务端自定义指令)是在 AST(抽象语法树)执行阶段用来动态改变查询行为的机制。

结合我在安全圈的攻防经验,这类漏洞通常出在 GraphQL 引擎解析自定义鉴权 Directive 时发生了上下文旁路。

当 GitLab 的后端接收到带有特定恶意 Directive 的 GraphQL 载荷时,解析器可能在处理复杂查询树时,错误地跳过了对 Mutation(变更操作)的权限校验逻辑。黑客正是利用这个设计缺陷,伪造出一个看似合法的请求,实则悄悄越过了 IAM(身份与访问管理)防线,直接对底层的项目模型执行了 Delete 或 Update 操作。

🐛 附赠的彩蛋:CVE-2026-19650 与 GET 请求引发的血案

除了上面那个 9.4 分的王炸,这次更新还捎带修复了一个 CVSS 评分为 7.1 的高危漏洞(CVE-2026-19650)。

这是一个存在于 GraphQL multiplex query handler(多路复用查询处理器) 中的跨站请求伪造(CSRF)漏洞。

🔍 为什么会发生?

这其实是一个非常典型的 API 设计反模式。按照 RESTful 或 GraphQL 的最佳安全实践,所有修改服务器状态的操作(Mutations)都应该强制使用 POST 请求,并严格校验 CSRF Token。

但 GitLab 在处理多路复用(Multiplex)的查询逻辑时,对输入校验把关不严,竟然允许未授权用户通过 GET 请求来执行 GraphQL mutations!

这就给 CSRF 留下了巨大的操作空间:黑客只需要精心构造一串包含恶意 Mutation 载荷的 URL(比如添加恶意 SSH 密钥或授予权限),然后想办法骗过有权限的 GitLab 管理员点击这个链接。由于是 GET 请求,浏览器会自动带上受害者的 Session Cookie,GitLab 后端照单全收,完成了一次完美的“借刀杀人”。

🛡️ 影响范围与避坑指南

看到这里,各位负责运维和安全的老铁肯定要问了:我要不要熬夜打补丁?

大家先对号入座查一下自己的部署模式和版本:

  • SaaS 用户(GitLab.com / GitLab Dedicated):

    恭喜你们,继续安心喝茶。官方已经后台热更新修复了,你们什么都不用做。

  • 私有化部署用户(Self-managed):

    ⚠️ 必须立刻行动! 社区版和企业版全部中招。

受影响的具体版本号:

  • 18.2 到 18.11.11 之前的所有版本
  • 19.0 到 19.0.8 之前的版本
  • 19.1 到 19.1.6 之前的版本
  • 19.2 到 19.2.4 之前的版本

(注:官方目前没有为 18.2 至 18.10 分支提供独立补丁,还在这些老版本上的兄弟,建议直接跨版本硬核升级了。)

安全版本(请尽快升级至以下其一):

👉 19.2.4 / 19.1.6 / 19.0.8 / 18.11.11

💡 一个好消息:

为了减轻运维负担,官方明确表示这次的安全更新没有引入任何新的数据库迁移。这意味着对于多节点部署的企业,可以实现平滑滚动升级,不需要停机,这总算是给凌晨加班的运维兄弟们留了点余地。

总结

这次的 GitLab 紧急漏洞事件再次给我们研发和安全团队敲响了警钟。随着 GraphQL 在现代 Web 应用中的全面普及,传统的基于 RESTful 路径的 WAF 防御规则往往会在 GraphQL 复杂的查询语法和批处理能力面前失效。API 安全的深水区,依然暗礁密布。

你公司的代码库目前跑在哪个版本?在升级私有化 GitLab 时有没有遇到过什么“神坑”?欢迎在评论区和我交流探讨!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。

本文转载自:安全圈动向 Kit Chung Kit Chung《紧急插播!GitLab 曝 9.4 分高危漏洞,GraphQL 竟成黑客“无鉴权删库”后门?》

评论:0   参与:  0