Falhas do tipo CWE-1339

1 resultado

Precisão ou acurácia insuficiente em números reais

A fraqueza ocorre quando um software trabalha com números de ponto flutuante ou decimais sem manter a precisão necessária para a operação, levando a erros de cálculo ou arredondamento que afetam a segurança ou a confiabilidade. Em contextos críticos (criptografia, validação, cálculos financeiros), pequenos desvios podem ser explorados ou causar comportamento inesperado.

Exemplo

Um sistema de autorização que valida permissões comparando valores de ponto flutuante sem considerar erro de representação binária, ou um cálculo de taxa de juros que acumula arredondamentos ao longo de múltiplas transações, resultando em fraudes ou validações incorretas.

Como mitigar

Use tipos de dados apropriados (ex: BigDecimal em Java para valores monetários), implemente comparações com margem de tolerância (epsilon) apenas quando justificado, e realize testes de casos extremos com números que causam imprecisão. Em contextos críticos, prefira aritmética exata (inteiros ou frações) em lugar de ponto flutuante.