一行正则表达式触发 RCE:GitLab CI/CD 漏洞风险通告

· 2026-10-14 18:13 · 226 阅读

云鼎实验室 2026-10-14 18:13 广东

GitLab CI/CD 正则编译器整数溢出,攻击者可执行任意命令,请立即升级。

概述

GitLab 是广泛应用于代码仓库管理的开源平台,基于 Git 构建,提供完整的 Web 代码协作服务,被众多企业和开发团队用于 CI/CD 流水线管理与代码托管。

腾讯云安全中心监测到 GitLab CE/EE 被披露存在整数溢出漏洞,漏洞编号 CVE-2026-97229。攻击者可通过在 CI/CD 配置中构造特制的正则表达式,触发正则表达式编译器中的整数溢出,进而以 git 用户身份在服务器上执行任意操作系统命令。目前漏洞细节与 PoC 代码已在第三方渠道公开,利用门槛进一步降低,建议受影响用户立即开展安全自查并升级修复。

漏洞详情

GitLab CE/EE 的 CI/CD 正则表达式编译器基于 Ruby 的 Onigmo 正则引擎。在存在漏洞的版本中,由于程序大小计算存在整数溢出,当攻击者提交的正则表达式最初以紧凑的 US-ASCII 格式编译并通过 GitLab 的正则表达式验证后,若该表达式被用于匹配包含 UTF-8 字符的仓库路径,Onigmo 引擎会在验证完成后针对新编码重新编译该正则。在重新编译过程中,整数溢出导致生成无效的正则表达式指令,破坏控制流完整性,使攻击者得以在 Ruby 进程中执行受控的 Onigmo 虚拟机操作,最终以 GitLab 的 git 用户身份执行任意操作系统命令。

注:要成功利用该漏洞,攻击者必须具有将恶意 CI/CD 配置文件 .gitlab-ci.yml 提交至公共项目分支的权限。若 GitLab 实例允许新用户自行注册并创建公共项目,则攻击者仅需一个普通账户即可满足利用条件。

字段

内容

漏洞名称

GitLab CE/EE 整数溢出远程代码执行漏洞

漏洞编号

CVE-2026-97229

危害等级

高危

漏洞类型

应用漏洞 / 整数溢出 / 远程代码执行(RCE)

影响范围

GitLab CE/EE 19.2.x / 19.3.x / 19.4.x

参考链接

https://cloud.tencent.com/announce/detail/2508

影响版本

受影响版本:

  • 19.2 <= GitLab CE/EE < 19.2.8

  • 19.3 <= GitLab CE/EE < 19.3.4

  • 19.4 <= GitLab CE/EE < 19.4.2

官方修复后的安全版本:

  • GitLab CE/EE >= 19.2.8

  • GitLab CE/EE >= 19.3.4

  • GitLab CE/EE >= 19.4.2

处置建议

1、升级至安全版本

官方已发布漏洞补丁及修复版本,建议评估业务受影响情况后参照下表升级。建议在升级前做好数据备份工作,避免出现意外。

当前版本范围

建议升级至

19.2.x(< 19.2.8)

GitLab CE/EE 19.2.8

19.3.x(< 19.3.4)

GitLab CE/EE 19.3.4

19.4.x(< 19.4.2)

GitLab CE/EE 19.4.2

2、临时缓解措施(升级前可先执行)

  • 限制对公共项目的匿名访问,并阻止不受信任的用户创建或写入公共项目,以降低被利用的风险。

  • 监控异常的 CI/CD 管道执行行为和 git 用户下的可疑进程,及时发现潜在的攻击活动。

参考链接

-END-

——关注云鼎实验室,获取更多安全情报——

跳转微信打开

本文转载自微信公众号「云鼎实验室」,查看原文。版权归原作者所有,如有侵权请联系删除。