Falhas do tipo CWE-189

31 resultados

Erro Aritmético / Transbordamento Numérico

Falha na manipulação de operações matemáticas que causam comportamentos inesperados: transbordamento de inteiro (overflow), subtransbordamento (underflow), divisão por zero ou cálculos que excedem os limites do tipo de dado. Isso permite contornar validações, corromper dados ou disparar exceções que travam a aplicação.

Exemplo

Um sistema de pagamento recebe um inteiro de 16 bits para armazenar quantidade de produtos. Ao tentar registrar 70.000 unidades, o valor transborda e vira um número negativo ou muito pequeno, causando cobrança errada ou acesso a áreas de memória indevidas.

Como mitigar

Validar limites numéricos antes de operações críticas; usar tipos de dado com range suficiente (ex: `long` ou `BigDecimal` em Java); testar edge cases (valores máximos, mínimos, zero) em testes unitários; considerar bibliotecas de aritmética segura em linguagens low-level como C/C++.