GitLab shipped a critical patch on October 21, 2026, for a CVSS 10.0 flaw that reaches back 12 years. CVE-2026-110264 is an integer overflow in regular expression compilation: under conditions GitLab has not disclosed, a specially crafted regex can let an unauthenticated user execute arbitrary code on a self-managed GitLab server. Every self-managed CE and EE release from 7.0 (2014) is affected. GitLab.com is already patched. There is no workaround.
GitLab servers are some of the most sensitive systems a company runs. They hold all of its source, CI/CD variables, runner tokens, deploy keys and the credentials pipelines use to reach production. A pre-auth RCE there is a supply-chain incident waiting to happen. This post covers the fixed versions, a trap for teams that patched the week before, the 11 other fixes in the release, and detection. The full analysis is in our CVE-2026-110264 entry.
TL;DR
| Question | Answer |
|---|---|
| CVE | CVE-2026-110264 |
| Score | CVSS 10.0, AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| What | Integer overflow when compiling a crafted regular expression, leading to RCE |
| Who | Self-managed GitLab CE and EE, all versions from 7.0 |
| Fixed | 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13 |
| GitLab.com / Dedicated | Patched (Dedicated on 19.3.5-internal0, 19.4.2-internal0 or later) |
| Workaround | None |
| Exploited? | None reported; not in CISA KEV as of Oct 22 |
| Reporter | joaxcar, via GitLab's HackerOne bug bounty |
What the bug is
GitLab's description is short: "under certain conditions, [the issue] could have allowed an unauthenticated user to execute arbitrary code on the GitLab server due to integer overflow when compiling a specially crafted regular expression." The issue report stays private for 90 days.
Coverage of the release attributes the flaw to Onigmo, the regular expression engine built into Ruby, which GitLab ships and patches in its own packages. That explains the reach: the bug is in the engine, not in one feature, so every GitLab release that uses it is affected. One analysis describes a repeat counter stored in a signed 16-bit integer that wraps negative past 32,767 and enables an out-of-bounds write. GitLab has not confirmed those specifics, so treat them as third-party analysis.
What matters operationally is the vector: network, low complexity, no privileges, no user interaction, scope changed. GitLab's two published detections, "Onigmo native worker crash" and "Org mode render error burst," hint that a rendering path that compiles user-influenced patterns is involved.
The October 12 trap
This is GitLab's second regex RCE in nine days. On October 12, GitLab fixed CVE-2026-97229, a separate 10.0 regex flaw that affected only 19.2 and later, in 19.4.2, 19.3.4 and 19.2.8. Teams that patched then may believe they are current. They are not.
| You run | Status |
|---|---|
| 19.4.2, 19.3.5, 19.3.4, 19.2.8 | Still vulnerable to CVE-2026-110264 |
| 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13 | Fixed |
| 18.10 or older | No fixed release; upgrade to a supported line |
Two other regex-engine flaws, CVE-2026-93577 and CVE-2026-89078 (9.9, authenticated), were fixed on September 23. The same researcher reported several of these.
Upgrade
Check your version:
sudo gitlab-rake gitlab:env:info | grep -A2 'GitLab information'
# or, with a token:
curl -s -H "PRIVATE-TOKEN: $TOKEN" https://gitlab.example.com/api/v4/version
Upgrade on Omnibus (adjust edition and line):
sudo apt-get update
sudo apt-get install gitlab-ee=19.5.1-ee.0 # or gitlab-ce=19.5.1-ce.0
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
For Docker, pull gitlab/gitlab-ee:19.5.1-ee.0 (or your line's fixed tag) and recreate the container. For Helm, bump to the chart that ships the fixed version.
Planning notes:
- 19.4.3 and 19.3.6 include database migrations, so single-node servers will have downtime. Multi-node installations can follow GitLab's zero-downtime upgrade procedure.
- 19.2.9, 19.1.9, 19.0.10 and 18.11.13 carry only the critical fix. The other 11 fixes are in 19.3.6 and later.
- Until you upgrade, take the instance off the public internet: VPN, IP allow list, or an identity-aware proxy in front of it.
Detection
GitLab released two threat detections for self-managed instances:
- Onigmo native worker crash: Puma or Sidekiq workers dying with native crashes in the regex engine.
- Org mode render error burst: bursts of rendering errors in Org-mode content.
Also look for:
- Requests carrying very long or highly repetitive regex patterns, especially from unauthenticated clients
- New admin users, personal access tokens, SSH keys or deploy keys you did not create
- Changes to CI/CD variables, runner registrations or protected branch settings
- Unexpected processes spawned by the
gituser, and outbound connections from the GitLab host
If you find signs of compromise, treat the instance's secrets as exposed: rotate CI/CD variables, runner tokens, deploy keys, OAuth application secrets and any cloud credentials pipelines use, and review recent pipeline runs and commits.
The other 11 fixes in the release
| CVE | Severity | Issue |
|---|---|---|
| CVE-2026-15723 | High 8.2 | Account takeover via OmniAuth-to-LDAP auto-linking email lookup (needs SAML and LDAP auto-linking enabled) |
| CVE-2026-112212 | High 7.5 | Unauthenticated cache poisoning of OAuth/OIDC discovery documents to redirect flows |
| CVE-2026-12664 | Medium 6.8 | read_api token can read incoming email address and create work items via GraphQL |
| CVE-2026-16255 | Medium 5.9 | SAML/LDAP membership lock not enforced on earlier requests (EE) |
| CVE-2026-105777 | Medium 4.3 | Internal credentials exposed through unfiltered response headers |
| CVE-2026-13319 | Medium 4.3 | Group milestones API leaks private project milestone metadata |
| CVE-2026-112378 | Medium 4.3 | Paid AI features reachable without a subscription (EE) |
| CVE-2026-105711 | Low 3.5 | Confidential issue titles leak via shared fragment cache |
| CVE-2026-14288 | Low 3.1 | Merge request approval policy bypass during rule sync (EE) |
| CVE-2026-112326 | Low 3.1 | Read-only user can delete vulnerability records on error (EE) |
| CVE-2026-103515 | Low 2.7 | Group Owner can re-enable Amazon Q after an admin lock (EE) |
Two of these touch AI features: the Duo billing check (CVE-2026-112378) and the Amazon Q admin lock (CVE-2026-103515), which let a group Owner re-enable AI-backed data egress to a third-party service after an administrator turned it off. If you lock AI features for compliance reasons, the latter is worth noting.
Why this matters for teams running coding agents
Coding agents increasingly push branches, open merge requests and trigger pipelines in GitLab with tokens of their own. A compromised GitLab server can tamper with what those agents read, and an agent token on a compromised server is one more credential to rotate. Keep agent tokens scoped to the projects they need, with expiry dates, and review merge requests from agents as carefully as from people. Beam records the git and shell commands coding agents run on developer machines, which helps reconstruct what an agent pushed if you need to audit after an incident.
Related reading
- CVE-2026-110264 analysis in the AgentBeam CVE database
- Oracle Java October 2026 CPU: 55 Java SE fixes
- PHP2Shell patch guide
- Railway breach: rotate every secret
- NSA: disable Cisco Smart Install
Primary sources: GitLab Critical Patch Release 19.5.1 · The Hacker News · Konfirmity advisory
Accurate as of October 22, 2026. GitLab will publish the issue details 90 days after the release.
