Falhas do tipo CWE-491
4 resultadosMétodo clone() público sem final (Object Hijack)
Uma classe implementa Cloneable e expõe um método clone() público sem declarar como final, permitindo que subclasses o sobrescrevam. Um atacante pode herdar da classe, interceptar o clone() e retornar um objeto malicioso em vez de uma cópia legítima, enganando o código que confiava no resultado da clonagem.
Uma classe BankAccount implementa clone() públicamente. Um atacante cria uma subclasse que sobrescreve clone() para retornar um objeto com saldo manipulado. Código que clona uma BankAccount para copiar dados seguramente acaba recebendo um objeto falso controlado pelo atacante.
Declare o método clone() como final se a clonagem deve ser exatamente como definido na classe original. Alternativamente, evite expor clone() publicamente ou use padrões como cópia defensiva em construtores em vez de Cloneable.