Fallos del tipo CWE-14

10 resultados

Remoçã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.

Ejemplo

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.

Cómo mitigar

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.