PT-2026-109865 · Decimal · Decimal
CVSS v4.0
6.9
Média
| Vetor | AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
decimal versões 0.1.0 até 3.1.1
Description
Um problema de alocação de memória existe na função
Decimal.round/3 que permite a Negação de Serviço (DoS). A função constrói o resultado completo para o número solicitado de casas decimais antes de aplicar a precisão do contexto, fazendo com que o consumo de memória cresça com base no argumento places em vez do tamanho do resultado. Para places positivos, o software anexa dígitos zero ao coeficiente como uma charlist; para places negativos, ele constrói uma charlist de dígitos zero. Um valor elevado, como -50.000.000, pode alocar aproximadamente 5,5 GB de memória, potencialmente esgotando os recursos disponíveis e causando a interrupção da BEAM VM. Em versões mais antigas, este problema manifesta-se como alto consumo de CPU devido a um loop executado para cada casa decimal. Aplicações estão expostas se passarem valores fornecidos pelo usuário para Decimal.round/2 ou Decimal.round/3 sem a devida limitação.Recommendations
Atualize o decimal para a versão 3.1.2 ou posterior.
Como solução temporária, limite o argumento
places antes de chamar Decimal.round/2 ou Decimal.round/3, por exemplo, restringindo-o a um intervalo como -34..34 ou às escalas específicas suportadas pela aplicação.Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Decimal