PT-2024-24940 · Vitess · Vitess

Mattrobenolt

·

Publicado

2024-05-08

·

Atualizado

2024-05-10

·

CVE-2024-32886

CVSS v3.1

4.9

Média

VetorAV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
Nome do software vulnerável e versões afetadas
Versões do Vitess anteriores à 17.0.7
Versões do Vitess anteriores à 18.0.5
Versões do Vitess anteriores à 19.0.4
Descrição
O problema ocorre ao executar uma consulta específica, fazendo com que o vtgate entre em um loop infinito e consuma quantidades crescentes de memória, levando eventualmente a uma negação de serviço devido ao esgotamento da memória. Isso ocorre porque as funções de decodificação para certas colações, como utf16, utf32 e ucs2, implementam uma lógica que impõe um comprimento mínimo de caracteres, mas os chamadores de DecodeRune esperam progresso através do retorno do número de bytes consumidos. Se restar apenas 1 byte na entrada, ela retorna 0, e o chamador não consome o caractere, levando a um loop infinito. O número estimado de dispositivos potencialmente afetados em todo o mundo não foi especificado.
Recomendações
Para versões anteriores à 17.0.7, atualize para a versão 17.0.7 ou posterior.
Para versões anteriores à 18.0.5, atualize para a versão 18.0.5 ou posterior.
Para versões anteriores à 19.0.4, atualize para a versão 19.0.4 ou posterior.
Como solução temporária, considere restringir o uso das codificações utf16, utf32 e ucs2 nas consultas para minimizar o risco de exploração. Evite usar a consulta select utf16 0xFF no endpoint da API afetado até que o problema seja resolvido.

Exploit

Correção

Infinite Loop

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

AZL-40360
AZL-40493
CVE-2024-32886
GHSA-649X-HXFX-57J2
GO-2024-2826

Produtos afetados

Vitess