Gnark · Gnark · CVE-2024-50354
Nome do software vulnerável e versões afetadas:
gnark versões 0.11.0 e anteriores
Descrição:
O problema está relacionado à alocação excessiva de memória durante a desserialização de chaves de verificação Groth16 no gnark, levando a uma negação de serviço (DoS). Isso pode fazer com que o programa trave com um erro de “memória insuficiente”. O problema surge quando a função `ReadFrom` é chamada para carregar uma `VerifyingKey` de um arquivo e aloca uma grande quantidade de memória com base no valor de `nbCommitments` extraído do arquivo deserializado.
Recomendações:
Para as versões 0.11.0 e anteriores do gnark, atualize para a versão 0.11.1 ou posterior, que inclui a correção para este problema. Como alternativa, considere executar a verificação de chaves como um serviço separado que possa interromper o pipeline de verificação em caso de um erro de falta de memória quando as chaves de verificação vierem de fontes não confiáveis. Como solução temporária, considere desativar a função `ReadFrom` para entradas não confiáveis até que um patch seja aplicado.