---
title: "GitLab: execução remota de código no compilador de expressões regulares"
description: "Alerta crítico CVE-2026-110264: execução remota de código sem autenticação em GitLab CE/EE self-managed. Versões afetadas e corrigidas, detecção e recomendações."
lang: pt-BR
type: alert
canonical: "https://soc.gigacandanga.net.br/alertas/gitlab-cve-2026-110264.html"
source_html: "/alertas/gitlab-cve-2026-110264.html"
alert_id: "AR-2026-002"
published: "2026-10-23"
updated: "2026-10-23"
severity: critical
cvss: 10.0
cves:
  - "CVE-2026-110264"
status: "patched"
source_sha256: "3de537c262cd5ae0fe42906230f5d3375441cc8e9026988d016f8ccb67193d78"
generator: "site-md/1"
---

<!-- gerado de /alertas/gitlab-cve-2026-110264.html; não editar manualmente -->

Versão HTML: [https://soc.gigacandanga.net.br/alertas/gitlab-cve-2026-110264.html](https://soc.gigacandanga.net.br/alertas/gitlab-cve-2026-110264.html)

Alerta de segurança · AR-2026-002

*Crítica · AR-2026-002 · 23 de outubro de 2026*

# GitLab: execução remota de código no compilador de expressões regulares

A CVE-2026-110264, com CVSS 10.0, permite execução remota de código sem autenticação em instalações self-managed do GitLab CE/EE. A falha está no compilador de expressões regulares do Ruby (Onigmo) e afeta versões desde a 7.0; a correção está disponível para todas as linhas suportadas e para a 18.11.

> **Ação imediata**
>
> **Atualize todas as instâncias self-managed do GitLab CE/EE** para a versão corrigida da linha em uso: 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 ou 19.5.1. Priorize instâncias acessíveis pela internet.
>
> - Confirme a versão e o tipo de instalação (Omnibus, source ou Helm chart) em cada nó.
> - Não há workaround oficial divulgado; restringir o acesso é medida paliativa.
> - GitLab.com já está corrigido; GitLab Dedicated em 19.3.5-internal0, 19.4.2-internal0 ou posterior também.

<a id="resumo"></a>

## Resumo

Em 21 de outubro de 2026, o GitLab publicou uma versão crítica de correção para instalações self-managed do GitLab Community Edition (CE) e Enterprise Edition (EE). A **CVE-2026-110264** tem **CVSS 3.1 10.0** e permite que um usuário não autenticado execute código no servidor GitLab sob certas condições, explorando um integer overflow no compilador de expressões regulares.

A falha afeta versões desde a 7.0 e recebeu correção em sete linhas ao mesmo tempo, incluindo backports para 18.11, 19.0, 19.1 e 19.2. GitLab.com já está corrigido; instâncias GitLab Dedicated em 19.3.5-internal0, 19.4.2-internal0 ou posterior também. A ação é necessária apenas em instalações self-managed.

Não há workaround oficial divulgado. A atualização para uma versão corrigida é a única correção; restringir o acesso à instância e reduzir arquivos `.org` públicos são medidas de redução de exposição, não de correção.

### Por que este alerta é prioritário

- CVSS 10.0, com vetor de rede, baixa complexidade, sem privilégios e sem interação do usuário.
- Impacto potencial sobre todos os repositórios, variáveis de CI/CD, tokens de runner, tokens de acesso e segredos da instância.
- Instalações self-managed expostas à internet são alvo direto; ambientes internos também devem ser corrigidos.
- Há relatos de terceiros sobre PoC público; não foi possível validar a exploração neste alerta.

<a id="gravidade"></a>

## Gravidade e exposição

| Métrica | Valor | Leitura |
| --- | --- | --- |
| CVSS v3.1 | `10.0` · Crítica | Maior pontuação possível; impacto alto em confidencialidade, integridade e disponibilidade, com escopo alterado. |
| Vetor | `AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H` | Rede, baixa complexidade, sem privilégios, sem interação do usuário. |
| Impacto | Execução de código como usuário `git` | Comprometimento da instância: repositórios, CI/CD, tokens e segredos acessíveis ao processo. |
| Alcance | GitLab CE/EE self-managed | GitLab.com e GitLab Dedicated já corrigidos; não exigem ação do cliente. |

O escopo alterado ( `S:C`) indica que o impacto pode ultrapassar o componente vulnerável e atingir o servidor e os dados sob sua responsabilidade. Em uma instância GitLab, isso inclui código-fonte, credenciais de integração, variáveis protegidas e artefatos de CI/CD.

**Status de exploração:** não há confirmação pública de exploração em ambiente real até a publicação deste alerta. O CVE não constava no catálogo *Known Exploited Vulnerabilities* (KEV) da CISA na verificação de 22 de outubro de 2026. O EPSS era de 0,005 (0,5%) nessa data. Relatos de terceiros mencionam PoC público; a existência de PoC reduz o tempo esperado para tentativas de exploração e não altera a recomendação de atualizar.

<a id="tecnico"></a>

## Detalhes técnicos

O GitLab descreve a falha como um integer overflow na compilação de uma expressão regular especialmente construída. A análise de detecção publicada pelo próprio GitLab detalha o caminho pelo renderizador Org-mode: o gem `org-ruby` interpola uma palavra-chave `#+TODO:` controlada pelo atacante em uma nova expressão regular, sem escape adequado:

```text
Regexp.new("^#{keyword}\\s*")
```

Com uma palavra-chave contendo mais de 32.767 repetições genéricas, o compilador Onigmo atribui um ID de repetição acima do limite de 16 bits com sinal. O valor sofre wraparound e a operação de repetição realiza uma escrita fora dos limites no momento da correspondência. Com preparação de heap, a cadeia pode chegar a uma chamada de `system()` como o usuário `git`.

A falha é classificada como **CWE-190** (integer overflow ou wraparound). O caminho Org-mode descrito nas detecções do GitLab envolve também CWE-94 (controle impróprio de geração de código) e CWE-787 (escrita fora dos limites).

### Condições descritas

- O caminho não autenticado descrito nas detecções exige que a instância renderize um arquivo `.org` controlado pelo atacante — por exemplo, em um projeto público.
- A exploração é uma campanha de tentativas: a maioria pode gerar timeout ou queda do worker; uma tentativa bem-sucedida pode ser silenciosa.
- O GitLab não detalhou publicamente todas as pré-condições; não presuma que uma configuração específica elimina o risco.
- O problema está no runtime empacotado pelo GitLab, não apenas em aplicações ou integrações que usam expressões regulares.

<a id="afetados"></a>

## Versões afetadas e correção

| Linha do GitLab | Versões afetadas | Primeira versão corrigida |
| --- | --- | --- |
| 18.11 e anteriores (desde 7.0) | anteriores a 18.11.13 | 18.11.13 |
| 19.0 | anteriores a 19.0.10 | 19.0.10 |
| 19.1 | anteriores a 19.1.9 | 19.1.9 |
| 19.2 | anteriores a 19.2.9 | 19.2.9 |
| 19.3 | anteriores a 19.3.6 | 19.3.6 |
| 19.4 | anteriores a 19.4.3 | 19.4.3 |
| 19.5 | anteriores a 19.5.1 | 19.5.1 |

Todos os tipos de instalação self-managed são afetados, salvo indicação em contrário no comunicado do GitLab: Omnibus, instalação a partir do código-fonte e Helm chart. GitLab.com já executa a versão corrigida. GitLab Dedicated em 19.3.5-internal0, 19.4.2-internal0 ou posterior também está corrigido.

### Como verificar a versão

Confirme a versão em cada nó e o tipo de implantação. Em Omnibus:

```bash
sudo gitlab-rake gitlab:env:info
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
```

Em instalações por código-fonte, verifique `/home/git/gitlab/VERSION`. Em Kubernetes/Helm, confira a tag da imagem dos pods `gitlab-webservice` e dos demais componentes. Não confie apenas na versão do sistema operacional ou do pacote externo.

- Atualize todos os nós de uma implantação em HA, não apenas o nó inicial.
- Reconstrua a imagem ou o pacote e reinicie os serviços conforme o procedimento do GitLab.
- As versões 19.3.6 e 19.4.3 incluem migrações de banco; a 19.4.3 inclui pós-implantação. Em single-node, pode haver indisponibilidade durante a migração; planeje janela e backup.

<a id="deteccao"></a>

## Detecção

O GitLab publicou regras de detecção no formato Sigma. A investigação deve combinar logs de requisição, logs de exceção, mensagens de crash do worker e inspeção dos repositórios. Um único sinal não é conclusivo; uma exploração bem-sucedida pode não gerar crash.

### Burst de timeouts no renderizador Org

Em `exceptions_json.log`, procure cinco ou mais `Timeout::Error` do renderizador `OtherMarkup` em arquivos `.org`, do mesmo cliente, em 30 minutos. Exemplo de evento:

```json
{"exception.class":"Timeout::Error",
 "extra.class_name":"OtherMarkup",
 "extra.file_name":"payload.org",
 "meta.caller_id":"Projects::BlobController#show",
 "meta.client_id":"ip/203.0.113.10"}
```

### Crash nativo do worker

Em `puma_stderr.log`, procure `[BUG]` com frames do `org-ruby` ( `headline.rb`) ou do Onigmo ( `match_at`, `onig_search_gpos`, `onig_compile`, `compile_tree`, `compile_length_tree`, `rb_str_sub_bang`):

```text
org-ruby-0.9.12/lib/org-ruby/headline.rb:100: [BUG] Segmentation fault
...
ruby(match_at+0x26f0 ...)
ruby(onig_search_gpos+0x630 ...)
ruby(rb_reg_search_set_match ...)
```

### Outros sinais

- Respostas 502 do Workhorse na rota de blob de um arquivo `.org`; a requisição que derruba o worker pode não aparecer no log Rails.
- `POST` em `/preview` com `file_path` terminando em `.org` enquanto a URL não é de um arquivo `.org` — seleção deliberada do renderizador.
- Arquivos `.org` com linhas `#+TODO:`, `#+SEQ_TODO:` ou `#+TYP_TODO:` anormalmente longas. Busca de triagem indicada pelo GitLab:

```bash
rg -l --glob '**/*.org' '^\#\+(TODO|SEQ_TODO|TYP_TODO):.{500,}'
```

- Processos filhos de Puma ou Sidekiq, arquivos inesperados do usuário `git` em `/tmp`, conexões de saída, alterações em cron ou chaves SSH.
- Acesso ou alteração de `gitlab-secrets.json`, variáveis de CI/CD, tokens de runner e tokens de acesso.

Preserve os logs antes de reiniciar. Para o caminho Org, a requisição que causa o crash pode não ter `correlation_id` no log Rails; correlacione por host, IP e janela de tempo.

<a id="recomendacoes"></a>

## Recomendações

1. **Inventarie instâncias self-managed.** Registre versão, tipo de implantação, exposição à internet, nós de HA e responsável pela atualização. Inclua ambientes de teste e instâncias esquecidas.
2. **Atualize para a versão corrigida da linha.** Use 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 ou 19.5.1, conforme a linha em uso. Siga o caminho de atualização suportado pelo GitLab.
3. **Planeje a janela de manutenção.** Faça backup, valide espaço em disco e revise as migrações das versões 19.3.6 e 19.4.3. Em HA, atualize todos os nós; em single-node, prepare-se para indisponibilidade durante as migrações.
4. **Valide a correção.** Confirme a versão nos nós, nos pods e nas imagens em execução; reinicie os serviços e verifique a saúde da instância após a atualização.
5. **Se não puder atualizar, reduza a exposição.** Coloque a instância atrás de VPN ou allowlist, restrinja o acesso à internet e remova ou torne privados arquivos `.org` e projetos públicos que possam servir de payload. Isso não corrige a falha.
6. **Monitoramento e hunting.** Ative as regras de detecção do GitLab e revise os logs desde 21 de outubro de 2026, data da publicação da correção.
7. **Se houver comprometimento, rotacione segredos.** Preserve evidências, isole a instância e rotacione `gitlab-secrets.json`, variáveis de CI/CD, tokens de runner, tokens de acesso, chaves SSH e credenciais de integração.
8. **Comunique.** Acione o SOC da GigaCandanga e os canais oficiais aplicáveis (CISC, CTIR Gov, CERT.br). Avalie obrigações de notificação de incidente e de proteção de dados pessoais.

<a id="mitigacao"></a>

## Mitigação temporária

> **Não há workaround oficial**
>
> O GitLab não publicou uma configuração que corrija ou bloqueie a falha de forma completa. As medidas abaixo reduzem a exposição enquanto a atualização é preparada; nenhuma substitui a versão corrigida.

| Medida | Efeito | Limite |
| --- | --- | --- |
| Atualizar para a versão corrigida | Corrige a falha. | Única correção completa. |
| Restringir acesso por VPN ou allowlist | Reduz a exposição da instância à internet. | A instância continua vulnerável; acesso interno comprometido ainda alcança o serviço. |
| Remover ou tornar privados arquivos `.org` e projetos públicos | Reduz a superfície do caminho não autenticado descrito nas detecções. | Não cobre outros caminhos ou pré-condições desconhecidas; não corrige. |
| Monitorar logs e aplicar as detecções do GitLab | Identifica tentativas e possíveis crashes. | Não bloqueia a exploração nem detecta necessariamente um sucesso silencioso. |

Não trate regras genéricas de WAF ou bloqueio de arquivos `.org` como correção. A ausência de crash ou de alerta não prova que a instância não foi comprometida.

<a id="resposta"></a>

## Resposta a incidentes

Uma exploração bem-sucedida pode ocorrer sem crash visível. Se houver suspeita, trate a instância como comprometida e preserve as evidências antes de reiniciar ou reconstruir.

1. **Contenha:** isole a instância da internet e de outros segmentos; preserve logs, arquivos `.org` suspeitos e o estado dos processos.
2. **Investigue:** revise timeouts de renderização, crashes do worker, 502 do Workhorse, previews com `file_path` `.org`, IPs de origem, processos filhos de Puma/Sidekiq, arquivos do usuário `git` em `/tmp`, conexões de saída, cron e chaves SSH.
3. **Eradique:** atualize para a versão corrigida, remova payloads e commits maliciosos e reconstrua a instância a partir de imagem ou backup confiável. Não confie apenas na remoção de um arquivo.
4. **Recupere:** rotacione `gitlab-secrets.json`, variáveis de CI/CD, tokens de runner e de acesso, chaves SSH e credenciais de integração. Valide a configuração e monitore o retorno.
5. **Notifique:** acione o SOC da GigaCandanga e os canais oficiais (CISC, CTIR Gov, CERT.br). Avalie notificação de titulares e demais obrigações legais, inclusive LGPD, se houver dados pessoais afetados.

<a id="referencias"></a>

## Referências

Links externos abrem em nova aba. Consulte sempre a fonte oficial para o status mais recente.

- [GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-5-1-released/) GitLab Docs · 21 out. 2026
- [CVE-2026-110264 · Integer Overflow or Wraparound in GitLab](https://www.cve.org/CVERecord?id=CVE-2026-110264) CVE Program · 22 out. 2026
- [NVD · CVE-2026-110264 Detail](https://nvd.nist.gov/vuln/detail/CVE-2026-110264) NIST NVD · 22 out. 2026
- [CERT-EU · Security Advisory 2026-019: Critical Vulnerability in GitLab Community and Enterprise Editions](https://cert.europa.eu/publications/security-advisories/2026-019/) CERT-EU · 22 out. 2026
- [GitLab · Onigmo native worker crash (detecção)](https://gitlab.com/gitlab-security-oss/tldr/-/blob/main/Detections/platforms/GitLab/Vulnerability%20Detections/onigmo_native_worker_crash.md) GitLab Security · 2026
- [GitLab · Org mode render error burst (detecção)](https://gitlab.com/gitlab-security-oss/tldr/-/blob/main/Detections/platforms/GitLab/Vulnerability%20Detections/org_mode_render_error_burst.md) GitLab Security · 2026
- [CISA · Known Exploited Vulnerabilities Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) CISA · consulta em 22 out. 2026
- [The Hacker News · Critical GitLab Flaw (CVSS 10.0) Could Allow Unauthenticated RCE Across 12 Years of Releases](https://thehackernews.com/2026/10/critical-gitlab-flaw-cvss-100-could.html) The Hacker News · 21 out. 2026

Outras fontes de consulta para resposta e investigação estão em [Links úteis](/site-md/links-uteis.md).

<a id="revisao"></a>

## Revisão

**Revisão 1.0** — 23 de outubro de 2026 — Publicação inicial. Fontes consultadas até 23 de outubro de 2026. O status de exploração e a inclusão no catálogo KEV podem mudar; confirme nas fontes oficiais.

Este alerta consolida informações públicas e tem caráter informativo. Não substitui os comunicados oficiais dos fornecedores nem a avaliação da equipe responsável por cada ambiente. Teste as ações em ambiente controlado antes de aplicá-las em produção.
