GitLab CVE-2026-97229: Alpine relata tentativa de exploração
O Alpine Linux diz que um invasor tentou explorar a CVE-2026-97229 em seu servidor GitLab em 20 e 21 de outubro. Atualizar só o GitLab não resolveu: o patch está no Ruby.
4 min de leitura

Em números
- GitLab worker crashes during the attack
- 8
- CVSS score, the maximum
- 10.0
- exposed hosts on vulnerable versions, per Censys
- 25,766
O Alpine Linux diz que um invasor tentou explorar a CVE-2026-97229 no servidor GitLab do projeto em 20 e 21 de outubro de 2026. Isso aconteceu cerca de uma semana depois de o GitLab lançar uma correção. A lição maior está no relatório de incidente do Alpine, publicado em 28 de outubro. Atualizar o próprio GitLab não fechou a brecha na configuração do Alpine, porque a correção real é um patch no Ruby.
O Alpine é uma pequena distribuição Linux muito popular como base para contêineres Docker. Seus desenvolvedores usam um servidor GitLab auto-hospedado para gerenciar o código de seus pacotes.
O que aconteceu no servidor do Alpine
Segundo o Alpine, as tentativas derrubaram os processos worker do GitLab oito vezes. Em quatro dessas quedas, o invasor avançou parte do caminho no exploit.
O Alpine diz que não encontrou evidências de que o ataque tenha funcionado. "Não encontramos evidências de que ele tenha tido sucesso, mas não podemos descartar essa possibilidade", diz a publicação.
Por isso, a equipe tratou o servidor como comprometido. Ela reconstruiu o GitLab do zero e limitou o acesso a desenvolvedores e servidores de build. Também redefiniu todas as senhas e chaves secretas.
O projeto também verificou o que mais importa para seus usuários. Segundo o Alpine, seu repositório aports, seus pacotes e suas versões estáveis de 21 de outubro foram comparados com registros externos. Eles não mostraram sinais de adulteração. Essas versões foram o Alpine 3.21.9, 3.22.7, 3.23.7 e 3.24.3. As chaves que assinam os pacotes do Alpine nunca ficaram armazenadas no servidor GitLab, e 45 máquinas de build foram verificadas.
O Alpine encontrou mais um problema no caminho. Logins automatizados em seu servidor usaram senhas vazadas de outros sites. Quem reutilizou a senha do GitLab do Alpine em outro lugar deve trocá-la lá.
Por que a atualização do GitLab não ajudou
Esta é a parte que outros administradores de servidores auto-hospedados devem ler duas vezes. "A atualização para o GitLab 19.3.6 em 22 de outubro não corrigiu a vulnerabilidade", escreve o Alpine.
O motivo está na forma como o GitLab distribui a correção. Os pacotes oficiais do GitLab trazem sua própria cópia do Ruby, a linguagem de programação em que o GitLab é escrito. Segundo o Alpine, a correção da CVE-2026-97229 é um conjunto de patches para esse Ruby embutido. O Alpine roda o GitLab sobre o Ruby padrão, então uma versão mais nova do GitLab, sozinha, não mudou nada.
O Alpine também diz que pulou por engano a atualização 19.3.5 em 13 de outubro. Durante o ataque, ainda rodava a 19.3.4. Seus próprios pacotes ruby agora incluem a correção, e os usuários do Alpine devem executar apk upgrade.
O que é a CVE-2026-97229
O GitLab divulgou a falha em 12 de outubro de 2026 e pediu que todas as instalações autogerenciadas fossem atualizadas. O BleepingComputer informou que se trata de um estouro de inteiro na parte do GitLab que lê expressões regulares em arquivos de pipeline de CI/CD. Expressões regulares são padrões de texto, e pipelines de CI/CD são os scripts que compilam e testam código automaticamente. O comunicado de segurança do GitLab disse que o bug "poderia ter permitido que um usuário não autenticado executasse código arbitrário no servidor GitLab".
Um pesquisador que usa o apelido "joaxcar" relatou o problema pelo programa de bug bounty do GitLab na HackerOne. O GitLab.com já estava corrigido, e os clientes do GitLab Dedicated não precisaram fazer nada.
| Item | Detalhe |
|---|---|
| Gravidade | CVSS 10.0, o máximo |
| Tipo de bug | Estouro de inteiro no compilador de regex de CI/CD |
| Builds corrigidas | 19.2.8, 19.3.4 ou 19.3.5, e 19.4.2 (as fontes divergem sobre a 19.3) |
| Exploit público | Lançado pela Rapid7 em 13 de outubro |
| Hosts expostos | 25.766 em versões vulneráveis, segundo a Censys |
As fontes divergem sobre a correção da 19.3. O BleepingComputer cita a 19.3.4. O Daily Security Review e o Alpine apontam para a 19.3.5. Confira o comunicado do próprio GitLab para o seu branch exato.
O Daily Security Review informou em 14 de outubro que o exploit depende de um arquivo forjado enviado por commit a um branch de um projeto público. Naquele momento, não havia ataque confirmado no mundo real. A Agência de Segurança Cibernética e de Infraestrutura dos EUA (CISA) também não havia adicionado o bug à sua lista de falhas exploradas. A Censys também constatou que cerca de 31% dos hosts GitLab detectados ainda estavam sem correção.
Esta é a segunda falha de regex de gravidade máxima do GitLab neste mês. O GitLab 19.5.1 corrigiu a CVE-2026-110264, um bug separado de CVSS 10.0, em 21 de outubro.
O que isso significa para desenvolvedores
O relatório do Alpine transforma um patch conhecido em um checklist prático. Ele também mostra que "atualizamos" e "estamos seguros" não são a mesma coisa.
- Verifique de onde seu GitLab obtém o Ruby. Se você roda o GitLab a partir do código-fonte ou de pacotes da distribuição sobre o Ruby do sistema, a atualização do GitLab sozinha pode não trazer a correção. Confirme que seu Ruby inclui os patches, como o Alpine teve de fazer.
- Não pule versões de correção. O Alpine perdeu a 19.3.5 por engano. Atrele seu processo de atualização aos comunicados de segurança do GitLab, não a um calendário de rotina.
- Presuma que um servidor público foi sondado. Existe um exploit público desde 13 de outubro. Se você rodou uma build vulnerável na internet depois disso, revise os logs de falhas dos workers das semanas seguintes.
- Restrinja os projetos públicos. O exploit precisa de um arquivo forjado em um projeto público. Até aplicar a correção, limite quem consegue acessar o servidor e desative a criação de projetos públicos por usuários não confiáveis.
- Mantenha as chaves de assinatura fora da plataforma de código. O Alpine pôde dizer que seus pacotes estavam seguros porque as chaves de assinatura nunca ficaram no GitLab. Vale a pena copiar essa decisão de design.
- Redefina senhas reutilizadas. Logins de credential stuffing também apareceram no Alpine. Incentive os usuários a adotar senhas únicas e login com dois fatores até que isso esteja em vigor em todo lugar.
Fontes
- GitLab security incident (CVE-2026-97229) - Alpine Linux
- GitLab warns of max severity RCE flaw in regex compiler engine - BleepingComputer
- Public Exploit Released for CVSS 10.0 GitLab Flaw CVE-2026-97229 - Daily Security Review
Artigos relacionados

OpenSSH 10.6 adiciona assinaturas pós-quânticas e acelera lançamentos
O OpenSSH 10.6, lançado em 6 de outubro, adiciona um tipo de assinatura pós-quântica, desativa a compressão LZ77 e promete correções mais rápidas diante da enxurrada de relatórios de bugs feitos com IA.

Gzip 1.15 corrige corrida que apagava o arquivo errado
O Gzip 1.15 reúne 119 commits de 75 semanas de trabalho. Corrige uma corrida que podia apagar o arquivo errado e um estouro de buffer ao descompactar .lzh.

Beta do Fedora 45 troca o console do kernel pelo kmscon
O Fedora 45 tira o console de texto do kernel. Três ferramentas param de funcionar, o beta saiu em 15 de setembro e o fbcon fica como reserva.