Fallos del tipo CWE-131

162 resultados

Cálculo Incorreto de Tamanho de Buffer

Ocorre quando o desenvolvedor calcula de forma errada o tamanho de memória necessária para um buffer, resultando em alocação insuficiente. Isso permite que dados escritos ultrapassem o limite do buffer, causando corrupção de memória, crash ou execução de código arbitrário.

Ejemplo

Um programa recebe uma string de tamanho desconhecido e aloca buffer com `malloc(strlen(input))` em vez de `malloc(strlen(input) + 1)`. O espaço para o terminador nulo é esquecido, e a cópia transborda o buffer adjacente.

Cómo mitigar

Use funções seguras como `snprintf()` ou `strncpy()` que aceitam o tamanho máximo como parâmetro. Ao calcular tamanho, sempre considere: comprimento real dos dados + espaço para terminadores + padding necessário. Automatize com ferramentas estáticas (AddressSanitizer, Valgrind) em testes para detectar transbordamentos.