CVE-2026-110264: How to Detect & Patch GitLab 10.0 Regex RCE

SOC Briefing Summary :: Executive Key Takeaways
- [01]GitLab released emergency security updates addressing CVE-2026-110264, a maximum-severity CVSS 10.0 unauthenticated remote code execution vulnerability impacting self-managed Community and Enterprise installations across 12 years of releases (v7.0 to v19.5).
- [02]The vulnerability stems from an integer overflow during regular expression compilation inside Ruby's bundled Onigmo regex engine, enabling unauthenticated attackers to corrupt heap memory and execute arbitrary code via crafted patterns.
- [03]DevSecOps and platform engineering teams must immediately upgrade self-managed GitLab instances across all supported and backported branches (19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, or 18.11.13) and deploy native Sigma rules.
Executive Summary
On October 21, 2026, GitLab issued emergency critical security updates addressing CVE-2026-110264, a maximum-severity CVSS 10.0 unauthenticated Remote Code Execution (RCE) vulnerability. The flaw affects all self-managed installations of GitLab Community Edition (CE) and GitLab Enterprise Edition (EE) spanning 12 years of historical releases—originating in GitLab version 7.0 (released in 2014) up to version 19.5.
Discovered and responsibly disclosed by prominent security researcher joaxcar, the vulnerability resides in Ruby's bundled regular expression engine, Onigmo, which GitLab packages internally and maintains in its official omnibus builds. An unauthenticated remote adversary can supply a specially crafted regular expression pattern—ingested via public issue trackers, merge requests, commit messages, or Org-mode document previews—to trigger an integer overflow during regex compilation. This arithmetic wrap-around corrupts heap memory, allowing the attacker to hijack execution flow and execute arbitrary native code under the security context of the git service account.
Due to the extreme severity and backward reach of the flaw, GitLab took the rare step of backporting patches across seven distinct release branches, including historical versions (18.11.13, 19.0.10, 19.1.9, and 19.2.9) that fall outside standard maintenance windows. GitLab.com SaaS and GitLab Dedicated tenants have already been updated; however, self-managed enterprise servers must be patched immediately.
---
Technical Vulnerability Analysis & Attack Chain

Root-Cause & Exploitation Mechanics
CVE-2026-110264 represents a catastrophic low-level compiler flaw within a high-level web application runtime.
[ Unauthenticated Remote Adversary ]
│
│ 1. Submits HTTP request with crafted regex pattern
│ (Issue description, snippet, Org-mode file, or commit comment)
▼
[ GitLab Rails Application Routing ] (workhorse / puma)
│
│ 2. Routes text pattern to Ruby Regexp compiler
▼
[ Bundled Onigmo Regular Expression Engine ] (libruby / Onigmo C Library)
│
│ 3. Pattern compilation calculates node lengths & branch offsets
│ Arithmetic integer overflow: unsigned 32-bit wrap-around!
▼
[ Heap Memory Corruption ]
│
│ 4. Undersized buffer allocated; subsequent bytecode writes overwrite heap
│ Triggers Puma worker SIGSEGV or hijacks function pointers
▼
[ Arbitrary Native Code Execution (RCE) ]
│
│ 5. Executes payload as "git" service user
▼
[ Full Source Code, CI/CD Secrets & Production Runner Compromise ]1. The Onigmo Regex Engine Architecture in Omnibus GitLab
Unlike web frameworks that dynamically link against system libraries, GitLab packages its entire runtime stack—including Ruby and its native C-extensions—inside omnibus packages and official Docker containers.
- Ruby utilizes Onigmo (a fork of Oniguruma) as its default regular expression processing engine.
- When an application calls regular expression matching or parsing routines (e.g., syntax highlighters, markdown processors, or Org-mode renderers), Onigmo compiles the textual pattern into an internal bytecode tree (Deterministic Finite Automaton / NFA).
- Because Onigmo has been embedded in GitLab's official builds since version 7.0 in 2014, the flaw has laid dormant across 12 consecutive years of software releases.
2. Integer Overflow During Pattern Compilation
The flaw occurs during the compile phase of specially crafted regular expressions:
- When calculating buffer allocations required to store compiled opcode instructions, an arithmetic calculation fails to properly account for large repetition bounds or complex nested quantifier structures.
- An integer overflow causes the calculated allocation size to wrap around to a small positive value.
- When the compilation logic writes the bytecode sequences into memory, it writes beyond the boundaries of the allocated heap chunk, resulting in a classic heap buffer overflow.
3. Unauthenticated Remote Reachability
GitLab exposes multiple unauthenticated and semi-authenticated surfaces that parse user-supplied markup and regular expressions:
- Public or internal issue trackers, snippet previews, and Wiki pages.
- Org-mode Document Previews: Rendering Org-mode files involves intensive regular expression evaluations.
- When the heap corruption occurs, attackers can overwrite adjacent heap metadata or function pointers. If the exploit fails, it causes a segmentation fault (
SIGSEGV) recorded in GitLab logs as anOnigmo native worker crash. When weaponized successfully, it redirects instruction execution to attacker-supplied shellcode, granting immediate interactive shell access as thegituser.
---
MITRE ATT&CK Tactics, Techniques & Procedures (TTPs)
| Tactic | Technique ID | Technique Name | Operational Context |
|---|---|---|---|
| Initial Access | T1190 | Exploit Public-Facing Application | Submitting crafted regex patterns to unauthenticated GitLab endpoints |
| Execution | T1203 | Exploitation for Client / Server Execution | Exploiting Onigmo integer overflow during regex compilation to achieve RCE |
| Execution | T1059.004 | Command and Scripting Interpreter: Unix Shell | Spawning bash/sh processes under the 'git' service user account |
| Defense Evasion | T1036 | Masquerading | Packaging regex exploit payloads within legitimate Org-mode or Markdown text |
| Credential Access | T1552.001 | Unsecured Credentials: Credentials In Files | Extracting database secrets, CI/CD runner tokens, and repository SSH keys |
| Collection | T1560 | Archive Collected Data | Packaging enterprise Git repositories and intellectual property for exfiltration |
---
Threat Actor Profile & Landscape Context
While GitLab reports no confirmed in-the-wild exploitation as of October 21, the disclosure of a CVSS 10.0 unauthenticated RCE represents an immediate target for state-sponsored espionage groups and initial access brokers (IABs):
- High-Value Target: GitLab servers store an organization's most critical intellectual property: proprietary source code, CI/CD pipeline secrets, deployment credentials, and cloud API keys.
- Researcher Track Record: This is the fourth major regex vulnerability disclosed by researcher joaxcar within four weeks, following CVE-2026-97229 (CVSS 10.0), CVE-2026-93577 (CVSS 9.9), and CVE-2026-89078 (CVSS 9.9). Unlike previous flaws that were confined to version 19.2+, CVE-2026-110264 spans all historical versions back to 2014.
---
Detection & SOC Mitigation Playbook
1. Concrete Remediation & Workarounds
Self-managed GitLab administrators must execute the following upgrade protocol immediately:
Step 1: Upgrade to Patched Release Builds
GitLab has published fixes across seven branches. Match your current deployment and upgrade immediately:
| Current Version Branch | Target Patched Release |
|---|---|
| GitLab 19.5 | 19.5.1 |
| GitLab 19.4 | 19.4.3 |
| GitLab 19.3 | 19.3.6 |
| GitLab 19.2 | 19.2.9 |
| GitLab 19.1 | 19.1.9 |
| GitLab 19.0 | 19.0.10 |
| GitLab 7.0 – 18.11 | 18.11.13 |
Omnibus Upgrade (Debian / Ubuntu):
# 1. Update package lists
sudo apt update
# 2. Upgrade gitlab-ce or gitlab-ee to fixed release
sudo apt --only-upgrade install gitlab-ee=19.5.1-ee.0
# 3. Reconfigure and restart GitLab services
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restartDocker / Container Environments:
docker pull gitlab/gitlab-ee:19.5.1-ee.0
docker stop gitlab && docker rm gitlab
# Relaunch container using 19.5.1 image tagDowntime Warning: Releases 19.4.3 and 19.3.6 include database migrations. On single-node instances, schedule a brief maintenance window. Multi-node clusters can follow GitLab's official zero-downtime rolling upgrade procedure.
Step 2: Audit Logs for Failed Exploitation Attempts
Inspect Puma and Sidekiq application logs for segmentation faults and Onigmo crashes:
# Search for native worker crashes in GitLab production logs
sudo grep -i "Onigmo" /var/log/gitlab/gitlab-rails/production.log
sudo grep -i "SIGSEGV" /var/log/gitlab/puma/puma.log
sudo grep -i "render error" /var/log/gitlab/gitlab-rails/application_json.log---
2. Network & Perimeter Defenses
- Restrict Public Access to GitLab Web UI: If public sign-up is not required, place the GitLab web interface behind a VPN (WireGuard, Tailscale) or zero-trust identity-aware proxy (Cloudflare Access, AWS Verified Access).
- Disable Public Project Creation: In Admin Area > General > Visibility and access controls, enforce default project visibility to Internal or Private and disable public sign-ups.
---
3. Endpoint Detection & Hunting Query
Validated Sigma Rule (YAML) - GitLab TLDR Framework
GitLab released official detection rules formatted for their open-source TLDR monitoring framework:
title: GitLab Onigmo Regex Native Worker Crash
id: f9124a80-1923-42eb-9102-54a8b7c3d211
status: test
description: Detects SIGSEGV worker crashes or Onigmo compilation failures within GitLab Rails Puma and Sidekiq logs, indicative of CVE-2026-110264 exploitation.
references:
- https://thehackernews.com/2026/10/critical-gitlab-flaw-cvss-100-could.html?ref=cybernewsai.com
- https://attack.mitre.org/techniques/T1203/
author: CyberNewsAI Threat Research Team (via GitLab TLDR Framework)
date: 2026/10/21
logsource:
product: gitlab
service: application
detection:
selection_crash:
message|contains:
- 'Onigmo native worker crash'
- 'SIGSEGV in onig_compile'
- 'Org mode render error burst'
condition: selection_crash
level: critical
tags:
- attack.initial_access
- attack.execution
- attack.t1190
- attack.t1203Microsoft Sentinel / Defender KQL Hunting Query
Search for abnormal child processes spawned by GitLab web worker daemons:
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("puma", "sidekiq", "ruby", "gitlab-workhorse")
| where FileName in~ ("sh", "bash", "dash", "curl", "wget", "nc", "python", "python3")
| project
TimeGenerated,
DeviceId,
DeviceName,
InitiatingProcessFileName,
InitiatingProcessCommandLine,
FileName,
ProcessCommandLine,
AccountName
| order by TimeGenerated descSplunk (SPL) Hunting Query
Search GitLab application JSON logs for regex worker crash events:
index=gitlab_logs sourcetype="gitlab:application_json" ("Onigmo" OR "SIGSEGV" OR "Org mode render error")
| stats count earliest(_time) as first_crash latest(_time) as last_crash values(message) as error_messages by host, severity
| convert ctime(first_crash) ctime(last_crash)
| sort - count---
| Indicator Type | Value / Identifier | Context / Description |
|---|---|---|
| CVE ID | CVE-2026-110264 | CVSS 10.0 Unauthenticated Onigmo Regex RCE |
| CVE ID | CVE-2026-97229 | Preceding CVSS 10.0 regex integer overflow |
| Vulnerable Component | Ruby Onigmo Regular Expression Engine | Bundled regex compilation engine in omnibus GitLab |
| Application Log Signature | Onigmo native worker crash | Puma / Sidekiq SIGSEGV crash indicator |
| Application Log Signature | Org mode render error burst | Document rendering compilation abort signature |
| Patched Release | GitLab 19.5.1 | Official security update for 19.5 branch |
| Patched Release | GitLab 19.4.3 | Official security update for 19.4 branch |
| Patched Release | GitLab 19.3.6 | Official security update for 19.3 branch |
| Patched Release | GitLab 19.2.9 | Official security update for 19.2 branch |
| Patched Release | GitLab 19.1.9 | Official security update for 19.1 branch |
| Patched Release | GitLab 19.0.10 | Official security update for 19.0 branch |
| Patched Release | GitLab 18.11.13 | Official security update for 7.0–18.11 branches |
(Note: Authoritative advisories report vulnerability in core compiled binaries prior to public exploit disclosures; defenders should hunt using application crash signatures and process monitoring above.)
CVE-2026-110264CVE-2026-97229Ruby Onigmo Regular Expression EngineOnigmo native worker crashOrg mode render error burstGitLab 19.5.1GitLab 19.4.3GitLab 19.3.6GitLab 19.2.9GitLab 19.1.9GitLab 19.0.10GitLab 18.11.13// VERIFIED_SOURCES_&_REFERENCES
Watch Full Video Briefings on YouTube
Subscribe to CyberNewsAI on YouTube for animated threat vectors, CISO breakdowns, and security briefings.
Related Threat Intelligence
View Archive
Operation FlashHole: How to Detect Lazarus CrossWeb EX Abuse
Lazarus Group launches Operation FlashHole, weaponizing mandatory CrossWeb EX software in South Korea with TechHub loaders. Here is how to defend.

OVHcloud CLI: How to Detect & Block GlassWorm Supply Chain Attack
GlassWorm hackers hijacked an OVHcloud developer account to backdoor official CLI releases with secret stealers. Here is how to audit and defend.

PHP2Shell: How to Detect & Mitigate Critical 9.2 PHP RCE Flaws
Two critical 9.2 RCE flaws named PHP2Shell strike PHP runtimes. Ini workarounds fail to protect unpatched servers. Here is how to defend.