Falhas do tipo CWE-374

1 resultado

Passagem de objetos mutáveis para métodos não confiáveis

Ocorre quando você passa uma referência a um objeto mutável (lista, mapa, array, classe customizada) para um método ou função que você não controla totalmente. O método pode modificar o objeto internamente, comprometendo a integridade dos dados da sua aplicação ou criando comportamentos inesperados. É perigoso porque você perde o controle sobre mudanças no estado do objeto após passá-lo.

Exemplo

Um serviço de terceiros recebe uma lista de IDs de usuários. Internamente, esse serviço remove itens da lista ou adiciona dados maliciosos. Seu código continua usando a mesma referência de lista, agora corrompida, sem perceber que foi modificada durante a chamada externa.

Como mitigar

Passe cópias imutáveis ou defensivas do objeto (usar Collections.unmodifiableList(), copiar arrays, serializar/desserializar) em vez da referência original. Ou use objetos imutáveis por padrão e evite compartilhar referências com código não confiável.