一行正则表达式触发 RCE:GitLab CI/CD 漏洞风险通告
云鼎实验室 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 |
参考链接 |
影响版本
受影响版本:
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 用户下的可疑进程,及时发现潜在的攻击活动。
本文转载自微信公众号「云鼎实验室」,查看原文。版权归原作者所有,如有侵权请联系删除。