Weaknesses of type CWE-680
105 resultsOverflow de inteiro levando a estouro de buffer
Ocorre quando um cálculo de inteiro ultrapassa o limite máximo do tipo (overflow), resultando num valor menor do que o esperado. Esse valor comprometido é então usado para alocar ou indexar um buffer, permitindo escrita ou leitura além dos limites e causando corrupção de memória ou execução de código arbitrário.
Um código calcula o tamanho de um buffer como 'tamanho_usuario + 100'. Se tamanho_usuario for INT_MAX, a soma sofre overflow e vira um número negativo ou muito pequeno; o buffer é alocado com apenas alguns bytes, mas o programa escreve dados como se tivesse centenas, sobrescrevendo memória adjacente.
Valide limites de entrada antes de operações aritméticas (verifique se a soma ultrapassaria o máximo permitido), use tipos inteiros sem sinal quando apropriado, e prefira bibliotecas de alocação dinâmica que verificam transbordos. Em linguagens de alto nível, o risco é menor, mas em C/C++ é crítico usar funções como safe_add ou checagens explícitas.