Fallos del tipo CWE-14
10 resultadosRemoção de limpeza de buffers pelo compilador
O compilador otimiza e remove instruções que limpam buffers sensíveis (senhas, chaves criptográficas) da memória, considerando-as 'mortas' (código inútil). Isso deixa dados sensíveis expostos na RAM, onde podem ser recuperados por ataques de leitura de memória ou forensics.
Um programa zera uma variável com chave criptográfica via `memset(chave, 0, sizeof(chave))` antes de liberar. Com otimizações ativadas (-O2, -O3), o compilador remove essa instrução porque detecta que a variável nunca é mais lida, deixando a chave intacta na memória.
Use funções de limpeza segura específicas da linguagem/plataforma (ex: `explicit_bzero()` em C, `SecureZeroMemory()` em Windows, ou bibliotecas como libsodium) que o compilador não otimiza. Alternativa: desabilite otimizações agressivas para código sensível ou use barreiras de compilação (`volatile`) que forçam a execução.