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.
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.
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:
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
.orgcontrolado 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.
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:
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.
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:
{"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):
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. POSTem/previewcomfile_pathterminando em.orgenquanto a URL não é de um arquivo.org— seleção deliberada do renderizador.- Arquivos
.orgcom linhas#+TODO:,#+SEQ_TODO:ou#+TYP_TODO:anormalmente longas. Busca de triagem indicada pelo GitLab:
rg -l --glob '**/*.org' '^\#\+(TODO|SEQ_TODO|TYP_TODO):.{500,}'
- Processos filhos de Puma ou Sidekiq, arquivos inesperados do usuário
gitem/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.
Recomendações
- 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.
- 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.
- 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.
- 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.
- 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
.orge projetos públicos que possam servir de payload. Isso não corrige a falha. - 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.
- 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. - 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.
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.
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.
- Contenha: isole a instância da internet e de outros segmentos;
preserve logs, arquivos
.orgsuspeitos e o estado dos processos. - 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áriogitem/tmp, conexões de saída, cron e chaves SSH. - 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.
- 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. - 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.
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 GitLab Docs · 21 out. 2026
- CVE-2026-110264 · Integer Overflow or Wraparound in GitLab CVE Program · 22 out. 2026
- NVD · CVE-2026-110264 Detail NIST NVD · 22 out. 2026
- CERT-EU · Security Advisory 2026-019: Critical Vulnerability in GitLab Community and Enterprise Editions CERT-EU · 22 out. 2026
- GitLab · Onigmo native worker crash (detecção) GitLab Security · 2026
- GitLab · Org mode render error burst (detecção) GitLab Security · 2026
- CISA · 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 The Hacker News · 21 out. 2026
Outras fontes de consulta para resposta e investigação estão em Links úteis.
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.