Falhas do tipo CWE-681
61 resultadosConversão incorreta entre tipos numéricos
Ocorre quando o código converte um número de um tipo para outro sem validar se o valor cabe no novo tipo ou se a conversão preserva a semântica esperada. Um inteiro grande pode virar negativo, um float pode perder precisão, ou um valor assinado vira sem-sinal — causando lógica quebrada, buffer overflow ou bypass de validações.
Um validador verifica se um tamanho de buffer é menor que 1000 (int assinado). Se receber -2147483648 (int mínimo) e converter para size_t sem-sinal, vira um número gigante e o malloc aloca muito pouco, causando overflow.
Sempre validar o intervalo antes de converter; usar tipos consistentes em comparações críticas; ferramentas estáticas (clang-analyzer, SonarQube) detectam conversões suspeitas; preferir bibliotecas seguras que encapsulam conversões numéricas.