Falha crítica no GitLab explorada: como checar e atualizar
A CVE-2026-97229 do GitLab tem nota 10 e já está em ataques, segundo a CISA. Veja se sua instância está afetada, como atualizar e o que checar.
Em 29/10/2026 a CISA, agência de cibersegurança dos EUA, colocou a CVE-2026-97229 do GitLab no seu catálogo de vulnerabilidades exploradas em ataques (KEV). A falha tem nota CVSS 10.0, a máxima: segundo o aviso oficial do GitLab, ela pode deixar um usuário não autenticado executar código no servidor usando uma expressão regular forjada numa configuração de CI/CD.
A correção saiu em 12/10/2026. Se você mantém um GitLab próprio (self-managed) e não atualizou desde então, trate como urgente. Quem usa só o GitLab.com ou o GitLab Dedicated não precisa fazer nada: o GitLab informa que essas plataformas já estão corrigidas.
O que é a CVE-2026-97229
O GitLab compila expressões regulares enviadas pelos usuários, como os padrões usados na configuração do CI. O bug está no Onigmo, o motor de regex embutido no Ruby: um integer overflow no tamanho do padrão compilado. Segundo o aviso do projeto Ruby, padrões preparados corrompem a memória durante a compilação, e o GitLab mostrou que isso vira execução remota de código.
Versões afetadas, segundo o GitLab e o NVD:
- GitLab CE/EE 19.2 antes da 19.2.8
- GitLab CE/EE 19.3 antes da 19.3.5
- GitLab CE/EE 19.4 antes da 19.4.2
Já tem ataque de verdade
O Alpine Linux publicou em 28/10 um relato do incidente: em 20 e 21/10, uma conta recém-criada mandou configurações de CI forjadas pro GitLab do projeto, que ainda rodava a 19.3.4. Os processos do GitLab caíram 8 vezes, e em 4 delas o atacante avançou parte do exploit. O Alpine não achou sinal de que o código rodou, mas tratou o servidor como comprometido, reconstruiu tudo do zero, trocou as chaves secretas e resetou todas as senhas.
O detalhe mais importante do relato: atualizar o GitLab pra 19.3.6 não resolveu, porque a correção é um patch no Ruby que o GitLab aplica só nos pacotes e imagens oficiais. A imagem do Alpine usava o Ruby padrão.
Como saber se você está afetado
- Você roda GitLab self-managed (Omnibus, Docker, Helm ou instalação a partir do código).
- A versão está numa das faixas acima. Pra ver a versão, entre em
/helplogado como admin ou rode no servidor:
sudo gitlab-rake gitlab:env:info
- Se você instalou a partir do código ou monta a própria imagem com o Ruby do sistema, confira também o Ruby:
ruby -v
Segundo o projeto Ruby, as versões 3.3.13, 3.4.12 e 4.0.9 (ou mais novas) trazem todas as correções de regex ligadas a essa e a outras três CVEs do GitLab (CVE-2026-89078, CVE-2026-93577 e CVE-2026-110264).
Como atualizar
O caminho seguro é ir pra versão de patch mais recente da sua série, não só a mínima. Em 29/10 o Docker Hub já tinha as imagens 19.5.3, 19.4.5, 19.3.7 e 19.2.10. A série 19.5.1 em diante também corrige a CVE-2026-110264, outra falha crítica de regex.
Pacote Omnibus (Debian/Ubuntu)
sudo apt-get update sudo apt-get install gitlab-ee # ou gitlab-ce
Pacote Omnibus (RHEL, Rocky, AlmaLinux)
sudo dnf upgrade gitlab-ee # ou gitlab-ce
Docker
docker pull gitlab/gitlab-ee:19.5.3-ee.0 # ou a tag mais nova da sua série docker stop gitlab && docker rm gitlab # suba de novo com os mesmos volumes e parâmetros de antes
No Docker Compose, troque a tag no docker-compose.yml e rode docker compose pull && docker compose up -d. Antes de qualquer upgrade, faça backup e confira o caminho de upgrade oficial se for pular versões.
Instalação própria com o Ruby do sistema
Atualize o GitLab e o Ruby pra 3.3.13, 3.4.12, 4.0.9 ou mais novo. Se você usa a imagem alpinelinux/gitlab, o Alpine pede pra baixar a 19.3.6 de novo: só a imagem publicada em 27/10 traz o Ruby 3.3.13.
Se não der pra atualizar agora
O GitLab não publicou um contorno oficial pra essa falha. A medida mais segura até o upgrade é tirar a instância do acesso público, deixando o GitLab só atrás de VPN ou de regras de firewall pra IPs conhecidos. No caso do Alpine, o ataque veio de uma conta recém-registrada, então vale também revisar se o cadastro aberto de usuários está realmente necessário.
O que conferir depois do patch
- Confirme a versão nova em
/helpou comgitlab-rake gitlab:env:info. - Procure nos logs quedas de processos (workers do Puma, Sidekiq ou Workhorse) e muitas requisições ao CI Lint perto das datas do ataque. O GitLab publicou seis detecções pra isso, entre elas “Onigmo native worker crash” e “ci lint workhorse worker crash”.
- Revise contas criadas recentemente e pipelines ou configurações de CI estranhas.
- Se encontrar sinal de exploração, faça como o Alpine: trate o servidor como comprometido, troque segredos, tokens e chaves, e resete senhas.
Resumo
A CVE-2026-97229 é uma falha CVSS 10 no GitLab self-managed que já está sendo explorada. Atualize pra última versão de patch da sua série, confira o Ruby se você não usa os pacotes oficiais e revise os logs. Se o seu servidor também roda outros serviços expostos, vale ler os guias sobre a falha do kernel Linux explorada e a falha do Magento explorada.