Fallos del tipo CWE-499

2 resultados

Classe serializável contendo dados sensíveis

Uma classe marcada como serializável (implementa Serializable em Java, por exemplo) contém informações sensíveis como senhas, tokens ou chaves criptográficas. Quando o objeto é serializado para persistência ou transmissão, esses dados são expostos em forma não criptografada, permitindo que atacantes que acessem o fluxo serializado recuperem as credenciais.

Ejemplo

Uma classe User em Java implementa Serializable e possui campos privados com senha e token de autenticação. Ao serializar o objeto para cache, banco de dados ou transmissão de rede, esses campos sensíveis são gravados junto com os dados públicos, ficando vulneráveis se o arquivo ou fluxo for interceptado.

Cómo mitigar

Remova dados sensíveis das classes serializáveis, implemente métodos customizados de serialização (writeObject/readObject em Java) para excluir campos sensíveis, ou marque-os como transient. Alternativamente, criptografe os dados sensíveis antes da serialização ou não serializável a classe se seu propósito único é armazenar segredos.