Weaknesses of type CWE-491
4 resultsMétodo cloneable() público sem proteção final ('Object Hijack')
Uma classe implementa Cloneable e expõe um método clone() público sem estar marcada como final, permitindo que subclasses sobrescrevam o método e retornem objetos manipulados ou maliciosos. Um atacante pode herdar da classe, intercepçar a clonagem e injetar comportamento malicioso ou retornar instâncias comprometidas.
Uma classe SensitiveData implementa Cloneable com clone() público. Um atacante cria uma subclasse que sobrescreve clone(), retornando um objeto com dados alterados ou um trojan. Código que confia em clonar objetos dessa classe acaba usando a versão comprometida sem saber.
Marque a classe ou o método clone() como final para impedir herança/sobrescrita, ou não implemente Cloneable se clonagem não é necessária. Se a clonagem é essencial, valide a integridade do objeto clonado e considere usar mecanismos de cópia defensivos fora da hierarquia de herança.