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.
