Weaknesses of type CWE-839
6 resultsComparação de intervalo numérico sem validação mínima
Ocorre quando o código valida apenas o limite superior de um valor numérico, omitindo a verificação do limite inferior. Um atacante pode fornecer números negativos, zero ou valores muito baixos que passam pela validação e causam comportamento inesperado (divisão por zero, alocação negativa de memória, deslocamento inválido de índices).
Um programa valida se um tamanho de buffer é menor que 1024, mas não verifica se é maior que zero. Um atacante envia -100, que passa na comparação (−100 < 1024), mas causa crash ao tentar alocar memória negativa ou gera underflow em cálculos de offset.
Sempre validar ambos os limites: verificar que o valor está entre um mínimo e máximo aceitável (ex: if (valor < MINIMO || valor > MAXIMO) reject). Usar bibliotecas de validação que forçam verificações duplas ou adicionar testes automatizados que cobrem casos negativos e zero.