EN
L4 · 化粪池炸了GitLab · RCE · 自管版gitlab-regex-rce

GitLab:九天两个满分 10 分,出自同一个正则引擎

九天内第二个 CVSS 10.0:GitLab 再修正则编译器 RCE,这次一路影响到 GitLab 7.0

CVE-2026-110264(CVSS 10.0)是 Onigmo 正则编译器里的整数溢出,未经身份验证的用户就能在自管版 GitLab 上执行代码,影响 7.0 及之后的版本。它距离兄弟漏洞 CVE-2026-97229 只隔了九天,后者已有公开 PoC。10月12日打过补丁的服务器照样受影响。

披露时间
2026年10月21日
公开披露日期
严重程度
CVSS 10 × 2
本页收录 2 个 CVE
波及范围
7.0 及以上所有自管版 GitLab CE/EE;GitLab.com 和 Dedicated 已提前修复
gitlab · ruby
在野利用
未发现
暂无利用报告;10月12日那个兄弟漏洞已有公开 PoC

一句话说清楚

给 GitLab 喂一个形状刚好不对的正则表达式,引擎计算大小时就会整数回绕,生成的指令会以 git 用户身份执行攻击者的命令。

发生了什么

GitLab 在很多地方都会执行用户提供的正则表达式:CI 规则、代码所有者、推送规则、标记语言渲染。编译这些正则用的是 Onigmo,也就是 Ruby 背后的正则引擎,GitLab 在自己的安装包里打包并维护它的补丁。这个月研究人员两次在 Onigmo 计算大小的地方发现了溢出,编译器因此生成了错误的字节码,攻击者可以借此以 git 用户身份执行代码。

  • 10月12日,CVE-2026-97229: 在 GitLab 19.2–19.4 上通过精心构造的 .gitlab-ci.yml 触发。第二天 Rapid7 就公开了能用的 PoC。厂商定性为无需身份验证,实际上攻击者得能往某个公开项目提交代码,而如果你的实例开放注册,这一点毫无难度。
  • 10月21日,CVE-2026-110264: 同一个编译器里的另一处溢出,一路影响到 GitLab 7.0(2014 年)。GitLab 没说攻击者需要满足什么条件,所以没法靠改配置躲过去。10月12日打过补丁的,这次还得再升级。

为什么是 L4

两个漏洞都是 CVSS 10.0、无需身份验证,出在核心开发平台上,其中一个还有公开 PoC,已经很接近 L5 了。我们暂定 L4,是因为 GitLab.com 和 Dedicated 在披露前就已修复,两个漏洞都还没有利用报告,而且截至 10月22日 CISA 也没把它们列入 KEV。一旦出现利用,就升到 L5。欢迎提 PR。

马桶里有什么

CVE-2026-110264CVSS 10

正则编译中的整数溢出

10月21日修复。未经身份验证的用户可以在“特定条件下”在服务器上执行代码,GitLab 没有说明是什么条件。影响 7.0 及之后的版本。由 joaxcar 通过 HackerOne 报告。

说人话: 水管工把管子数错了,结果多出一根直通机房。

CVE-2026-97229CVSS 10

CI/CD 正则编译器中的整数溢出

10月12日在 19.2.8 / 19.3.5 / 19.4.2 中修复。.gitlab-ci.yml 里精心构造的正则先以 US-ASCII 通过校验,Onigmo 再按 UTF-8 重新编译时就会溢出。Rapid7 已复现并公开 PoC;利用需要对某个公开项目有提交权限,而只要开放注册,谁都能拿到。

你踩到了吗?

在每台机器上运行 sudo gitlab-rake gitlab:env:info | grep -i version,然后输入版本号,或者点一个最接近的。

修复版本(2026年10月21日)
分支安全版本状态
GitLab 19.519.5.1
GitLab 19.419.4.3含数据库迁移
GitLab 19.319.3.6含数据库迁移
GitLab 19.219.2.9回溯补丁(仅关键修复)
GitLab 19.119.1.9回溯补丁(仅关键修复)
GitLab 19.019.0.10回溯补丁(仅关键修复)
GitLab 7.0 – 18.1118.11.13回溯补丁。更老的版本请升级到 18.11.13 或更高

案发时间线

  1. 2026年9月23日

    GitLab 修复两个需要登录的 9.9 分代码执行漏洞

    CVE-2026-93577 和 CVE-2026-89078。

  2. 2026年10月2日

    自托管 AI Gateway 修复一个 9.9 分的模板沙箱逃逸

    CVE-2026-90970,已在 gateway 19.2.4 / 19.3.2 / 19.4.1 中修复。同一个月,不同组件。

  3. 2026年10月12日

    CVE-2026-97229 在 19.2.8、19.3.5 和 19.4.2 中修复

  4. 2026年10月13日

    Rapid7 复现 CVE-2026-97229 并公开 PoC

  5. 2026年10月21日

    CVE-2026-110264 在七条版本线上修复,另附 11 个安全修复

    GitLab 说一共 12 个问题,部分媒体说是 11 个。一并修复的还有 CVE-2026-15723(8.2 分,SAML/LDAP 自动关联导致账号接管)和 CVE-2026-112212(7.5 分,OAuth/OIDC 发现缓存投毒)。

各方说法

我们列出每条说法和它的出处,并标出一手来源(厂商、研究人员、软件仓库)。各方说法不一致时,按最坏的可信情况定级。

  • GitLab 19.5.1 补丁版本发布说明一手来源CVE-2026-110264 在 CE 和 EE 上均为严重级 10.0 分,影响 7.0 及之后版本,共 12 个修复,没有临时缓解措施
  • GitLab 19.4.2 补丁版本发布说明一手来源CVE-2026-97229 于 10月12日修复
  • Rapid7一手来源在 19.4.1 CE 上复现了 97229 并公开 PoC。所谓“无需身份验证”,前提是对某个公开项目有提交权限
  • The Hacker News说是 11 个修复;这是 joaxcar 一个月内第四个正则引擎 RCE;截至 10月22日未被列入 CISA KEV