Fallos del tipo CWE-189

45 resultados

Erro em operações numéricas

Fraqueza em que o software realiza cálculos com números inteiros ou ponto flutuante de forma incorreta, causando overflow, underflow, truncamento ou resultados inesperados. O erro ocorre quando o código não valida limites, conversões de tipo ou operações matemáticas, permitindo comportamentos maliciosos como acesso à memória indevido, bypass de verificações ou execução de código.

Ejemplo

Um programa que calcula um tamanho de buffer usando multiplicação (linha_x * coluna_y) sem verificar overflow: se os valores são grandes demais, o resultado inesperado aloca menos memória que o necessário, causando estouro de buffer quando dados são escritos. Ou um conversão de inteiro com sinal para sem sinal que gera um número negativo interpretado como muito grande.

Cómo mitigar

Validar entrada numérica contra limites esperados antes de operações. Usar bibliotecas ou funções que detectem overflow (ex: __builtin_mul_overflow em C, ou operações com checked types). Em linguagens modernas (Rust, Python), preferir tipos que levantam exceção em overflow. Documentar e testar casos extremos (zero, máximo, mínimo).