CVSS 10.0!特定条件下 GitLab 远程代码执行漏洞
原创
微步情报局
微步情报局
微步在线研究响应中心
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:仓库允许新用户自行注册并创建项目,或攻击者具备仓库写权限。
- 攻击者可访问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情报中心已于漏洞收录时向漏洞订阅用户推送该漏洞情报,并将持续推送后续更新;对于已经录入资产的用户,支持实时自动化排查受影响资产。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论