CVSS 10.0!特定条件下 GitLab 远程代码执行漏洞

· 2026-10-14 17:14 · 27 阅读

原创 微步情报局 2026-10-14 17:14 北京

点击查看漏洞详情

漏洞概况

GitLab CE/EE 是 GitLab 公司开发的一体化 DevOps 平台(社区版/企业版),提供 Git 仓库托管、CI/CD 流水线、代码审查与项目管理等能力,广泛用于企业源代码协作与持续集成。

近日,GitLab CE/EE官方发布通告,修复了GitLab CE/EE 远程代码执行漏洞(CVE-2026-97229)。由于正则表达式校验不足,满足特定条件时,未经身份验证的用户可通过 CI/CD 配置中的特制正则表达式,在 GitLab 服务器上执行任意代码。微步情报局已成功复现该漏洞。

利用前置条件:

1. 需要事先在仓库植入恶意 `.gitlab-ci.yml`:仓库允许新用户自行注册并创建项目,或攻击者具备仓库写权限。

2. 攻击者可访问CI Lint 接口:公开仓库或攻击者具备仓库读权限

经分析,GitLab 使用的 Ruby 正则引擎 Onigmo 在编译带重复次数的正则时,用有符号 32 位整数计算 ”子程序长度 × 重复次数“,乘积超过上限会发生整数溢出。回绕后的数据被写进 Onigmo 字节码的跳转偏移,可造成控制流劫持。

已证实的RCE利用链需要事先在仓库植入恶意 `.gitlab-ci.yml`;对于公开仓库,攻击者可通过匿名请求 `GET /api/v4/projects/:id/ci/lint?content_ref=<该分支>` 触发 CI Lint 检查 `.gitlab-ci.yml`。因正则校验不足,CI Lint 按 `content_ref` 读取已入库文件并调用 Onigmo 编译其中的正则,触发整数溢出,并在后续利用中以 `git` 用户权限实现远程代码执行。

(完整漏洞情报请查阅https://x.threatbook.com/v5/vul/XVE-2026-76904)

漏洞处置优先级(VPT)

综合处置优先级:高风险

基本信息

微步编号

XVE-2026-76904

CVE编号

CVE-2026-97229

漏洞类型

远程代码执行(整数溢出)

利用条件评估

利用漏洞的网络条件

远程

是否需要绕过安全机制

否

对被攻击系统的要求

无特殊要求

利用漏洞的权限要求

完整利用需具备仓库写权限

是否需要受害者配合

否

利用情报

是否有POC

是

已知利用行为

暂无

漏洞影响范围

产品名称

GitLab CE/EE

受影响版本

19.2<=version<19.2.8、19.3<=version<19.3.5、19.4<=version<19.4.2

有无修复补丁

有

漏洞复现

执行POC,植入恶意CI/CD配置后,攻击者发送请求触发 CI Lint 检查,触发整数溢出,实现任意代码执行。

修复方案

官方修复方案

官方已发布修复方案,请访问链接下载:
https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-2-released/

临时缓解措施

1. 禁止不可信账号新建公开项目,并禁止其向公开项目推送。

2. 停止向未登录用户开放公开项目。

微步产品支撑

微步漏洞情报于2026-10-13收录该漏洞。

微步下一代威胁情报平台NGTIP及X情报中心已于漏洞收录时向漏洞订阅用户推送该漏洞情报,并将持续推送后续更新;对于已经录入资产的用户,支持实时自动化排查受影响资产。

跳转微信打开

本文转载自微信公众号「微步在线研究响应中心」,查看原文。版权归原作者所有,如有侵权请联系删除。