Weaknesses of type CWE-194
5 resultsExtensão de sinal inesperada
Ocorre quando um valor com sinal (negativo ou positivo) é promovido para um tipo maior sem tratamento apropriado, e o bit de sinal é estendido para os bits novos, invertendo o significado do valor. Se o desenvolvedor não espera esse comportamento, comparações e operações lógicas podem falhar, levando a decisões de segurança incorretas (autorização indevida, bypass de validação).
Um código C que copia um byte assinado (-1, representado como 0xFF) para um inteiro de 32 bits: em linguagens como C, o -1 se torna 0xFFFFFFFF, não 0x000000FF. Se houver uma validação esperando um valor positivo pequeno, o código salta a checagem e executa lógica perigosa.
Sempre use tipos não assinados (unsigned) para dados que não devem ser negativos e em operações de segurança. Se precisar fazer promoção de tipo, faça conversão explícita e valide o resultado; utilize ferramentas de análise estática configuradas para detectar extensões de sinal suspeitas.