Fallos del tipo CWE-491
4 resultadosMétodo clone() público sem proteção final (Object Hijack)
Uma classe implementa clone() como método público sem declarar final, permitindo que subclasses herdem e sobrescrevam esse método. Um atacante pode criar uma subclasse maliciosa que retorna um objeto falso ou manipulado no lugar do original, enganando código que confia na cópia.
Uma classe Usuario implementa Cloneable e expose public Object clone(). Código legítimo faz usuario.clone() esperando uma cópia segura. Um atacante cria UsuarioMalicioso extends Usuario, sobrescreve clone() para retornar um objeto com privilégios elevados, e passa essa subclasse para o código legítimo sem que ele perceba.
Declare o método clone() como final se a classe não deve ser estendida, ou não implemente Cloneable se clonagem não é essencial. Alternatively, valide o tipo do objeto retornado antes de usar e considere usar padrões defensivos como cópia profunda com construtores em vez de clone().