CVE-2026-27820: Gem zlib do Ruby: estouro de buffer em GzipReader ungetc
A gem zlib do Ruby contém um estouro de buffer em Zlib::GzipReader que pode corromper memória quando os dados fornecidos excedem a capacidade da string de suporte. A NVD atribui pontuação 9.8 pelo CVSS 3.1, e o registro indica versões corrigidas 3.0.1, 3.1.2 e 3.2.3. Nenhuma exploração confirmada aparece nas fontes consultadas, e a CVE não consta no catálogo KEV da CISA.
Visão geral
A gem zlib é a interface Ruby para a biblioteca de compressão zlib. Segundo o aviso do GitHub citado no registro, a função zstream_buffer_ungets em Zlib::GzipReader pode deslocar dados existentes com memmove antes de confirmar que a string Ruby de suporte tem capacidade suficiente. A fraqueza é classificada como CWE-120 (Estouro de buffer clássico).
Impacto
- O registro descreve possível corrupção de memória quando o comprimento do buffer excede a capacidade disponível.
- A NVD atribui pontuação 9.8 (crítica) pelo CVSS 3.1, com vetor CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Esse vetor indica alcance pela rede, sem necessidade de privilégios ou interação do usuário, com alto impacto em confidencialidade, integridade e disponibilidade.
- O GitHub, como CNA, lista pontuação 1.7 pelo CVSS 4.0, valor bem diferente da avaliação da NVD. Ambos os valores constam no registro.
Produtos e versões afetadas
- Gem zlib do Ruby: anteriores a 3.0.1; de 3.1.0 até antes de 3.1.2; de 3.2.0 até antes de 3.2.3.
- A descrição do aviso cita 3.0.0 e anteriores, 3.1.0, 3.1.1, 3.2.0 e 3.2.1 como versões afetadas.
- O registro também lista o produto como Ruby-lang Zlib, com intervalos equivalentes.
Status de exploração
- O catálogo KEV da CISA não lista esta CVE, portanto não é possível afirmar exploração ativa confirmada com base no registro.
- Nenhuma exploração confirmada aparece nas fontes consultadas.
- Os dados SSVC do registro indicam exploração como none e automatizável como yes, o que são insumos de avaliação e não evidência de ataques.
- A entrada EPSS traz probabilidade de 0.00752 e percentil de 0.54534, mas sua data (2026-10-23) é posterior à data de publicação, por isso deve ser interpretada com cautela.
Correção e mitigação
- Atualize a gem zlib para 3.0.1 na primeira linha de versões, 3.1.2 na linha 3.1 ou 3.2.3 na linha 3.2, conforme a descrição do aviso.
- O campo de correções do registro está vazio, então confirme a versão corrigida no aviso do GitHub e no seu Gemfile.lock, e não apenas no campo.
- Quando a atualização imediata não for possível, reduza a exposição limitando o processamento de fluxos gzip de origens não confiáveis e isolando os serviços que os manipulam.
- Recompile e reimplante as aplicações após a atualização, para que a nova versão seja de fato carregada.
Orientações de detecção
- Faça o inventário de projetos Ruby e verifique os arquivos Gemfile.lock e os pacotes implantados quanto à gem zlib e sua versão.
- Use ferramentas de análise de composição de software que relacionem a gem ao aviso, e revise também imagens de contêineres e dependências vendorizadas.
- Monitore falhas inesperadas ou erros de memória em processos Ruby que descomprimem dados gzip de origens externas, correlacionando-os com implantações recentes.
Limitações das informações disponíveis
- O registro não inclui detalhes de prova de conceito, e o relatório do HackerOne citado exige permissões para visualização.
- O campo de correções está vazio, então as versões corrigidas vêm apenas do texto da descrição.
- As pontuações CVSS da NVD e do GitHub diferem muito, e o registro não explica a diferença.
- A data do EPSS é incompatível com a data de publicação.
Perguntas frequentes
Qual é a vulnerabilidade CVE-2026-27820?
É um estouro de buffer na gem zlib do Ruby, em Zlib::GzipReader, na função zstream_buffer_ungets, que pode corromper memória quando o comprimento do buffer excede a capacidade da string de suporte.
Quais versões foram corrigidas?
A descrição do aviso informa correção nas versões 3.0.1, 3.1.2 e 3.2.3. O campo de correções do registro está vazio, então confirme no aviso do GitHub.
Esta vulnerabilidade está sendo explorada ativamente?
A CVE não consta no catálogo KEV da CISA, e nenhuma exploração confirmada aparece nas fontes consultadas.
Esta análise foi redigida com auxílio de IA a partir de dados verificados das fontes e checada automaticamente contra eles.