一条GraphQL指令,删光你的代码仓"

admin 2026-10-18 03:53:28 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

一条GraphQL指令,删光你的代码仓

安世加

2026年8月19日 18:00
上海

在小说阅读器读本章

去阅读

新闻

News Today

GitLab在8月17日发布了一条紧急安全更新,修复了一个CVSS 9.4分的GraphQL层漏洞——编号CVE-2026-19478。任何能访问你GitLab实例/api/graphql端点的人,不需要账号、不需要密码、不需要你点任何东西,就可以向公共项目发一个恶意请求,永久删除代码、伪造合并记录、封禁维护者账号,或者干脆把整个项目抹干净。8月18日,奇安信CERT在国内成功复现,全网曝出PoC,看watchTowr的安全研究员在拿到补丁后几分钟内就反向推导出了利用代码。

一句话:这次轮到的不是某个冷门组件,是几乎所有企业研发团队都在用的代码托管平台。

漏洞本身不复杂。GitLab用GraphQL来组织API调用,每个字段都带有一个@gl\_introduced指令,标明\"这个字段是从哪个版本开始引入的\"。问题出在fallback解析逻辑上——当客户端请求一个目标版本上实际没有定义、但指令链条里允许fallback的字段时,GraphQL层在处理过程中绕过了部分权限校验。研究员hiimguardian通过HackerOne把这条问题报给了GitLab,但GitLab的修复公告没有写明具体是哪段指令逻辑出错,更没有透露复现条件。从已经公开的patch反推来看,这是一处典型的\"配置驱动的权限失效\"——指令注解本来是给版本兼容用的,结果被解析器当成了权限旁路。

受影响版本:GitLab CE/EE 从 18.2 至 18.11.11 之前、19.0 至 19.0.8 之前、19.1 至 19.1.6 之前、19.2 至 19.2.4 之前。GitLab.com 和 GitLab Dedicated 已经修好,自托管版本必须手动升级。

技术门槛极低是这个漏洞真正危险的地方。watchTowr的首席安全研究员Jake Knott对CSO杂志说,\"仅凭公告详情和补丁diff,我们在几分钟内就复现了漏洞,AI攻击者也不会落后太多。\" 8月18日,奇安信CERT在国内完成同样复现并发布风险通告,PoC随后在公开渠道流传。GitLab官方的披露策略是补丁发布30天后才公开issue详情,但patch diff本身已经足以让任何人手搓一个exploit,完整技术细节的滞后遮挡基本形同虚设。

受影响面也值得拿出来看一眼。奇安信鹰图资产测绘平台给出的数据是——全球范围内风险资产超过40万个,关联IP近5万个;国内风险资产10.8万个,关联IP 2.1万个。山东省、江苏省、湖北省是国内分布前三。把范围收窄到企业自托管场景,任何对外暴露的GitLab实例,只要存在至少一个Public可见的项目或用户,就满足利用条件。换句话说,只要你的GitLab对外开着、公网上有人知道你的地址,这件事就已经成立了。

实际危害分三个层次。最直观的是破坏:恶意请求能删除整个项目、抹掉issue、停用账号、搞乱分支历史。对一个还在持续迭代的开源项目来说,这意味着直接抹掉所有贡献记录。其次是注入:攻击者不一定删除项目,而是悄悄改代码、伪造合并记录、修改关键状态信息,然后再覆盖回去。对依赖Pull Request、CI/CD流水线发布制品的团队来说,这种\"改动过的公共项目\"就是最完美的供应链起点——下游消费者下载到的就是已经被动过手脚的代码。最阴险的是封禁:攻击者不必每次都删库,只要把维护者账号一个个停用,项目在事实上就瘫痪了;而项目维护者重新走GitLab支持流程恢复账号,需要时间和精力。

不过有个补丁空档必须拎出来讲。官方这次只给了18.11、19.0、19.1、19.2四个分支的修复版本,18.2到18.10之间所有受支持的分支都不会有补丁——GitLab没有给老分支单独再出一个补丁的意思,仍然停留在受支持范围内的用户,只能强制升级到被修复的分支。对那些因为插件、内置CI模板、定制化集成被锁死在老分支大版本上的企业来说,这次\"升级\"可能不是一次简单的版本切换,而是一笔不小的工程动作。但也没得选:停留在原版本意味着把漏洞留在那里。

留给企业的实际动作,按顺序就是这几件事——确认自托管实例当前版本是否落在受影响分支内(管理员后台可查),是的话就本周内升到18.11.11、19.0.8、19.1.6或19.2.4;升级完成之前,对/api/graphql端点做反向代理访问控制或直接限制为内网可达;立刻检查审计日志,看过去几周内有没有非认证上下文的GraphQL mutation调用,重点关注项目删除、用户停用、merge记录修改这几类事件;如果还在18.2到18.10之间的老分支,预算升级窗口就别拖了——这次升级是绕不过去的。

一个更宏观的判断是:代码托管平台的安全,正在成为开源供应链最脆弱的一环。Snyk、Sonatype、Socket这些工具盯得住包管理器里的恶意包,却管不住GitHub、GitLab平台上\"合法的代码修改\"——尤其是当修改是发生在公共项目上、攻击者根本不需要先拿到凭证的时候。这次漏洞能在不认证、不交互的前提下改你代码的事实,再一次说明:现代研发基础设施的攻击面,已经从\"网络层是否挡住\"下沉到\"应用层API是否被正确收紧\"。而每一次基础平台的紧急补丁,也都在提醒同一件事——你的代码库有多重要,托管它的那套系统的权限模型就有多重要,这笔账迟早要算。

信息来源:GitLab 官方公告

本公众号发布的文章均转载自互联网或经作者投稿授权的原创,文末已注明出处,其内容和图片版权归原网站或作者本人所有,并不代表安世加的观点,若有无意侵权或转载不当之处请联系我们处理!

安世加为出海企业提供SOC 2、ISO 体系、PCI DSS认证咨询服务(点击图片可详细查看)


一条GraphQL指令,删光你的代码仓" 网络安全文章

一条GraphQL指令,删光你的代码仓"

GitLab紧急修复了CVSS9.4分的GraphQL漏洞CVE-2026-19478,攻击者无需认证即可通过/api/graphql端点执行删除代码、封禁账号等操作。受影响版本包括18.2至18.11.11之前等多个分支,全球风险资产超40万个。建议企业立即升级至修复版本,或对端点进行访问控制,并检查审计日志。
瑞数信息发布《2026Bots&Agents自动化威胁报告》,重构AIAgent时代安全认知" 网络安全文章

瑞数信息发布《2026Bots&Agents自动化威胁报告》,重构AIAgent时代安全认知"

瑞数信息发布《2026Bots与Agents自动化威胁报告》指出,互联网已迈入人类、传统Bot与AIAgent共存的‘三体流量时代’。AIAgent流量激增至最高12%,攻击请求同比增超400%,且超六成新攻击能伪造真实TLS指纹。报告建议企业安全防护应从‘识别阻断’升级为‘信任治理’,构建基于身份、行为与意图的多维动态信任评估机制,对非人类流量实施差异化处置。
AI编程工具落地网络运维:从原理到实践的避坑指南" 网络安全文章

AI编程工具落地网络运维:从原理到实践的避坑指南"

本文介绍AI编程工具Codex在网络运维中的正确使用方法,强调其作为结对程序员而非搜索引擎的价值。通过分析Netmiko脚本认证失败案例,指出设备类型不匹配是常见根因,并给出修改device\\_type、增加异常捕获等解决方案。文章提出任务拆解、代码审查、配置验证和建立提示词库等可操作建议,提醒用户AI生成内容需人工核对版本兼容性和安全策略,最终结论是AI工具应辅助而非替代专业判断。
评论:0   参与:  0