L4 · Septic Tank BlewGitLab · RCE · self-managedgitlab-regex-rce

GitLab: two perfect 10s, one regex engine, nine days apart

GitLab patches its second CVSS 10.0 regex-compiler RCE in nine days, and this one reaches back to GitLab 7.0

CVE-2026-110264 (CVSS 10.0) is an integer overflow in the Onigmo regex compiler that lets an unauthenticated user run code on self-managed GitLab, from 7.0 onwards. It lands nine days after CVE-2026-97229, a sibling bug that already has a public PoC. Servers patched on Oct 12 are still exposed.

Disclosed
Oct 21, 2026
Public disclosure date
Severity
CVSS 10 × 2
2 CVEs tracked here
Splash zone
Every self-managed GitLab CE/EE from 7.0 up; GitLab.com and Dedicated are already patched
gitlab · ruby
In the wild
Not seen
No exploitation reported; the Oct 12 sibling has a public PoC

The one-sentence version

Feed GitLab a regular expression shaped just wrong and the engine's size maths wraps around, so it builds instructions that run the attacker's commands as the git user.

What happened

GitLab runs user-supplied regular expressions in many places: CI rules, code owners, push rules, markup rendering. It compiles them with Onigmo, the regex engine behind Ruby, which GitLab ships and patches in its own packages. Twice this month, researchers found a spot where Onigmo’s size calculation overflows, so the compiler emits broken bytecode that an attacker can turn into code execution as the git user.

  • Oct 12, CVE-2026-97229: reached through a crafted .gitlab-ci.yml on GitLab 19.2–19.4. Rapid7 published a working PoC the next day. The vendor calls it unauthenticated. In practice the attacker needs to commit to a public project, which is trivial if your instance allows open sign-up.
  • Oct 21, CVE-2026-110264: a different overflow in the same compiler that reaches back to GitLab 7.0 (2014). GitLab has not said which conditions an attacker needs, so you can’t configure your way out. If you patched on Oct 12, you still need this upgrade.

Why L4

Both bugs are CVSS 10.0, unauthenticated, in a core developer platform, and one sibling has a public PoC. That is close to L5. We held at L4 because GitLab.com and Dedicated were patched before disclosure, nobody has reported exploitation of either bug, and CISA had not added them to KEV as of Oct 22. If exploitation shows up, this goes to L5. Send a PR.

What’s in the bowl

CVE-2026-110264CVSS 10

Integer overflow in regex compilation

Fixed Oct 21. An unauthenticated user can run code on the server "under certain conditions" that GitLab has not described. Affects 7.0 onwards. Reported by joaxcar via HackerOne.

In plain poop: the plumbing counted the pipes wrong, and now there's a pipe straight into the server room.

CVE-2026-97229CVSS 10

Integer overflow in the CI/CD regex compiler

Fixed Oct 12 in 19.2.8 / 19.3.5 / 19.4.2. A crafted regex in .gitlab-ci.yml passes validation as US-ASCII, then overflows when Onigmo recompiles it for UTF-8. Rapid7 reproduced it and published a PoC; it needs commit access to a public project, which open sign-up gives anyone.

Are you standing in it?

Run sudo gitlab-rake gitlab:env:info | grep -i version on each box, then type the version or pick the closest match.

Fixed versions (Oct 21, 2026)
BranchSafe fromStatus
GitLab 19.519.5.1
GitLab 19.419.4.3Includes DB migrations
GitLab 19.319.3.6Includes DB migrations
GitLab 19.219.2.9Backport (critical fix only)
GitLab 19.119.1.9Backport (critical fix only)
GitLab 19.019.0.10Backport (critical fix only)
GitLab 7.0 – 18.1118.11.13Backport. Anything older: upgrade to 18.11.13 or later

Crime-scene timeline

  1. Sep 23, 2026

    GitLab fixes two 9.9 code-execution bugs that need a login

    CVE-2026-93577 and CVE-2026-89078.

  2. Oct 2, 2026

    Self-hosted AI Gateway gets a 9.9 template-sandbox escape

    CVE-2026-90970, fixed in gateway 19.2.4 / 19.3.2 / 19.4.1. Same month, different component.

  3. Oct 12, 2026

    CVE-2026-97229 fixed in 19.2.8, 19.3.5 and 19.4.2

  4. Oct 13, 2026

    Rapid7 reproduces CVE-2026-97229 and publishes a PoC

  5. Oct 21, 2026

    CVE-2026-110264 fixed in seven release lines, plus 11 other security fixes

    GitLab says 12 issues in total; some press says 11. Also fixed: CVE-2026-15723 (8.2, SAML/LDAP auto-link account takeover) and CVE-2026-112212 (7.5, OAuth/OIDC discovery cache poisoning).

Who said what

We list each claim and who made it. Primary sources (the vendor, the researcher, the registry) are marked. Where reports disagree, we grade by the worst credible case.

  • GitLab patch release 19.5.1PrimaryCVE-2026-110264 critical 10.0 on CE and EE, affects 7.0 onwards, 12 fixes in total, no workaround
  • GitLab patch release 19.4.2PrimaryCVE-2026-97229 fixed Oct 12
  • Rapid7PrimaryReproduced 97229 on 19.4.1 CE and published a PoC. "Unauthenticated" needs commit access to a public project
  • The Hacker NewsSays 11 fixes; joaxcar's fourth regex-engine RCE in a month; not in CISA KEV as of Oct 22