Falhas do tipo CWE-14

10 resultados

Remoção de limpeza de buffers pelo compilador

O compilador otimiza e remove código que limpa buffers sensíveis (senhas, chaves criptográficas) da memória, considerando-o 'código morto'. Isso deixa dados sensíveis na RAM, vulneráveis a ataques de leitura de memória ou forensics.

Exemplo

Um desenvolvedor zera um buffer com senha usando memset(buffer, 0, size) antes de liberar a memória, mas o compilador remove essa chamada porque detecta que o buffer não é mais lido depois. Dados sensíveis persistem na RAM e podem ser recuperados.

Como mitigar

Use funções seguras que o compilador não otimiza (como explicit_bzero, SecureZeroMemory no Windows, ou memset_s em C11), ou declare buffers sensíveis como volatile para forçar a escrita. Considere usar bibliotecas criptográficas que cuidam disso automaticamente.