Na semana passada, o Ruby lançou as versões 4.0.9, 3.4.12 e 3.3.13 para corrigir três bugs no Onigmo, o motor de expressões regulares embutido na linguagem. Expressões regulares são padrões usados para procurar e validar textos, como um filtro que confere se um campo parece um e-mail. Esses bugs estão por trás de quatro falhas críticas que o GitLab corrigiu no último mês.
Segundo a fonte, um padrão montado de forma especial pode corromper a memória enquanto o Ruby o compila, o que pode levar à execução de código nos próprios servidores do GitLab. Para o Ruby, qualquer aplicação que monte uma expressão regular a partir de um texto controlado por um atacante é afetada, não só o GitLab.
Na prática, a aplicação só corre risco quando recebe um texto de fora e o transforma em expressão regular, por exemplo ao passar esse texto para Regexp.new, Regexp.union ou Regexp.compile, ou ao colocá-lo dentro de um padrão por interpolação. Programas que usam apenas expressões escritas pelos próprios desenvolvedores não são afetados.
O GitLab compila padrões enviados pelos próprios usuários, como os da configuração de CI/CD. Foram quatro CVEs entre 23 de setembro e 21 de outubro. As duas primeiras, divulgadas em 23 de setembro, exigem uma conta logada e receberam nota 9,9 de 10. As duas de outubro, CVE-2026-97229 (dia 12) e CVE-2026-110264 (dia 21), não exigem conta e receberam nota 10,0, a máxima. A CVE-2026-110264 atinge todas as versões do GitLab a partir da 7.0. As falhas foram reportadas por um pesquisador pelo programa de bug bounty do GitLab. Até 23 de outubro, nenhuma das quatro aparecia no catálogo KEV da CISA, que lista falhas já exploradas.
Quem não puder atualizar agora deve parar de compilar expressões regulares a partir de textos não confiáveis. Duas defesas que parecem ajudar não funcionam: definir Regexp.timeout não impede os bugs, e limitar o tamanho do padrão também não é confiável, pois padrões curtos também podem acioná-los. Versões 3.2 e anteriores do Ruby não receberão correção, pois a 3.2 chegou ao fim de vida em 1º de abril de 2026. O Ruby recomenda migrar para a 3.4 ou a 4.0. Atenção: a versão 4.0.8 não tem a correção de uma das falhas, então quem usa a 4.0 deve instalar a 4.0.9.
Para quem administra um GitLab próprio (self-managed), o recomendado é instalar a versão que corrige a CVE-2026-110264: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 ou 18.11.13. O GitLab.com já está corrigido, e instâncias Dedicated em versões internas recentes não precisam de ação. O GitLab também publicou regras de detecção para identificar sinais de tentativas de exploração.

Comentários