Weaknesses of type CWE-316
36 resultsArmazenamento de informações sensíveis em texto claro na memória
O aplicativo mantém dados sensíveis (senhas, tokens, chaves criptográficas) desprotegidos na RAM enquanto está em execução. Qualquer processo com acesso à memória — via dump de heap, debugger ou exploit — consegue ler essas informações diretamente, comprometendo a confidencialidade.
Uma aplicação Java carrega uma senha do banco de dados em uma String e a mantém lá durante toda a sessão. Um ataque de information disclosure ou uma análise pós-crash via coredump revela a senha em texto claro. Ideal seria usar char[] e sobrescrever com zeros após o uso.
Use estruturas que permitem limpeza explícita (char[] em Java, SecureString em .NET), sobrescreva dados sensíveis imediatamente após uso, implemente proteção de memória (ASLR, DEP) e limite acesso aos processos. Ferramentas como valgrind ajudam a detectar vazamentos.