Weaknesses of type CWE-758

28 results

Dependê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.

Example

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.

How to mitigate

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.