Weaknesses of type CWE-758
27 resultsDependência de comportamento indefinido ou dependente da implementação
O código confia em como o compilador, sistema operacional ou runtime implementam algo que a especificação deixa em aberto — em vez de garantir comportamento explícito. Quando esse comportamento muda (por versão, otimização ou plataforma), o código quebra ou fica vulnerável.
Um programa pressupõe a ordem de inicialização de variáveis globais entre arquivos diferentes, ou confia que um inteiro overflow vai saturar de um jeito específico. Funciona em um compilador, falha em outro, ou a otimização quebra a lógica de segurança.
Evite depender de detalhes não garantidos pela especificação da linguagem. Use tipos seguros, operações bem-definidas e testes em múltiplas plataformas/compiladores. Documente e valide explicitamente comportamentos críticos de segurança em vez de deixá-los implícitos.