Falhas do tipo CWE-244
20 resultadosLimpeza inadequada de memória heap antes de liberação
Quando uma aplicação libera memória heap (com free(), delete, etc.) sem antes limpar seu conteúdo, dados sensíveis — como senhas, chaves criptográficas ou tokens — podem permanecer acessíveis na memória física. Um atacante com acesso ao heap (via core dump, scanner de memória ou outro processo) consegue recuperar esses dados mesmo depois que a variável foi 'liberada'.
Um servidor web autentica um usuário, armazena a senha em char* password, usa-a para validação e depois chama free(password). Mas os bytes da senha continuam lá na memória. Se o processo crashear e um dump for gerado, ou se outro código malicioso varrer o heap, a senha fica exposta.
Sempre sobrescreva memória sensível com zeros (ou padrões aleatórios) antes de liberar: use memset(password, 0, length) antes de free(). Melhor ainda: use bibliotecas especializadas como libsodium (sodium_memzero) ou, em linguagens modernas, tipos que garantem zeragem automática ao sair de escopo.