Rio Forense

Vulnerabilidade crítica no GitLab permite execução remota de código: atualize agora

Uma vulnerabilidade crítica no GitLab CE e EE pode permitir que um atacante não autenticado execute código arbitrário no servidor. Identificada como CVE-2026-97229, a falha recebeu pontuação CVSS 10,0, a classificação máxima do sistema de severidade.

O problema foi corrigido pelo GitLab nas versões 19.4.2, 19.3.5 e 19.2.8. O CERT-EU recomenda que todas as instâncias autogerenciadas, principalmente as expostas à internet, sejam atualizadas o quanto antes.

O que é a CVE-2026-97229

A falha está no compilador de expressões regulares usado pelo CI/CD do GitLab. Segundo o comunicado oficial, uma validação insuficiente pode provocar um integer overflow, ou estouro de inteiro. Em determinadas condições, uma expressão especialmente criada dentro de uma configuração de CI/CD pode levar à execução de código arbitrário no servidor GitLab.

O vetor é especialmente preocupante porque o GitLab descreve a possibilidade de exploração por um usuário não autenticado. A combinação de acesso pela rede, baixa complexidade, ausência de autenticação e impacto sobre confidencialidade, integridade e disponibilidade explica a pontuação CVSS 10,0 atribuída à vulnerabilidade.

Uma exploração bem-sucedida pode comprometer o próprio servidor GitLab e, dependendo da arquitetura, alcançar projetos, variáveis protegidas, tokens, runners e sistemas conectados aos pipelines. O impacto exato depende das permissões do processo, da configuração dos runners e dos segredos disponíveis no ambiente.

Quais versões estão afetadas

O GitLab informa que são afetadas as seguintes faixas de versões autogerenciadas:

  • GitLab CE/EE 19.2 anteriores à 19.2.8;
  • GitLab CE/EE 19.3 anteriores à 19.3.5;
  • GitLab CE/EE 19.4 anteriores à 19.4.2.

As versões corrigidas são 19.2.8, 19.3.5 e 19.4.2. O GitLab.com já estava executando uma versão corrigida, e os ambientes GitLab Dedicated foram atualizados antes da publicação do patch. A recomendação principal para instalações próprias é atualizar para a versão corrigida mais recente da linha utilizada.

Outras falhas corrigidas no mesmo lançamento

O patch release não corrigiu apenas a CVE-2026-97229. O GitLab informa 24 problemas de segurança tratados no conjunto de atualizações. Entre eles estão uma falha de cross-site scripting no realce de sintaxe, um problema de autorização que poderia permitir a execução de pipelines em branches protegidos e falhas relacionadas ao acesso a arquivos, políticas de execução e variáveis de CI/CD.

O CERT-EU destaca, entre os problemas adicionais, a CVE-2026-92883, com CVSS 8,7, a CVE-2026-16301, com CVSS 8,5, e um problema de envenenamento de cache classificado com severidade 8,2. Isso reforça a recomendação de aplicar o patch release completo, em vez de tentar corrigir apenas a vulnerabilidade de pontuação 10,0.

O que os administradores devem fazer

1. Identifique todas as instâncias autogerenciadas. O inventário deve incluir GitLab Omnibus, instalações a partir do código-fonte, contêineres e deployments em Kubernetes. Não presuma que ambientes de homologação, disaster recovery ou laboratórios estejam fora do alcance de atacantes.

2. Verifique a versão efetiva. Confirme a versão pelo painel administrativo, pela linha de comando ou pelo método de gerenciamento usado pela instalação. Em ambientes orquestrados, confira a imagem realmente em execução e não apenas o manifesto armazenado no repositório.

3. Atualize para uma versão corrigida. Aplique 19.2.8, 19.3.5 ou 19.4.2, conforme a linha utilizada, ou uma versão posterior suportada. Planeje a atualização, faça backup e valide a restauração antes da manutenção. Depois do procedimento, confirme que todos os nós e serviços estão executando o pacote corrigido.

4. Priorize instâncias expostas à internet. O CERT-EU recomenda começar pelas instalações públicas. Se a atualização precisar ser adiada, restrinja temporariamente o acesso administrativo e o acesso aos serviços vulneráveis por meio de controles de rede. Essa redução de exposição não substitui o patch.

5. Proteja os segredos de CI/CD. Revise variáveis protegidas, tokens de acesso, credenciais de deploy, chaves SSH e credenciais de runners. Caso exista qualquer indício de exploração, trate os segredos acessíveis ao GitLab como potencialmente comprometidos e faça a rotação depois de preservar evidências.

Como investigar sinais de exploração

Após identificar a versão e aplicar a atualização, revise os logs do GitLab, do proxy reverso, do balanceador, do sistema operacional e dos runners. Procure requisições incomuns, alterações inesperadas em configurações de CI/CD, criação de usuários, mudanças em tokens, novos runners, jobs fora do padrão e conexões de saída iniciadas pelo servidor GitLab.

Também vale revisar os projetos modificados recentemente, especialmente arquivos de pipeline e expressões regulares adicionadas ou alteradas antes de um comportamento suspeito. Correlacione os horários dos acessos com os eventos de autenticação e com a execução de jobs. Se houver evidência de execução arbitrária, isole o servidor, preserve os discos e logs e conduza uma análise forense antes de simplesmente reinstalar o serviço.

Medidas de proteção para o CI/CD

O incidente também é um lembrete para reduzir o impacto de um comprometimento do servidor de desenvolvimento. Use runners isolados e efêmeros quando possível, limite o acesso dos jobs à rede interna, evite disponibilizar segredos de produção em pipelines que não precisam deles e aplique o princípio do menor privilégio.

Tokens devem ter escopo e validade compatíveis com a tarefa. Variáveis sensíveis não devem ser impressas nos logs, e permissões de deploy devem ser separadas das permissões de leitura de código. A revisão de alterações em pipelines, a proteção de branches e o monitoramento de criação de runners ajudam a detectar abuso depois de uma intrusão.

Conclusão

A CVE-2026-97229 é uma vulnerabilidade de prioridade máxima para organizações que mantêm GitLab CE ou EE por conta própria. Ela combina severidade CVSS 10,0 com a possibilidade de execução remota de código sem autenticação e pode colocar em risco não apenas o servidor GitLab, mas também projetos, tokens, runners e ambientes de implantação.

A ação recomendada é objetiva: inventariar as instâncias, confirmar as versões, atualizar para 19.2.8, 19.3.5, 19.4.2 ou posterior, revisar segredos e investigar sinais de abuso. Instalações expostas à internet devem ser tratadas primeiro.

Fontes primárias

GitLab: GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.8.

CERT-EU: Security Advisory 2026-016 — Critical Vulnerability in GitLab CE and EE.

CVE: Registro CVE-2026-97229.

Sair da versão mobile