Vitess · Vitess · CVE-2024-32886
**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.