Fallos del tipo CWE-471
36 resultadosModificação de dados assumidos como imutáveis
A aplicação assume que certos dados não serão alterados após sua inicialização, mas não implementa proteção contra modificação. Um atacante consegue alterar esses dados em tempo de execução, comprometendo a lógica de segurança ou o funcionamento correto da aplicação. É comum em configurações, constantes globais ou referências que deveriam ser read-only.
Uma aplicação carrega regras de permissão em um dicionário global no início da execução e depois confía que elas permanecem inalteradas. Se um atacante consegue acessar à memória da aplicação (via injeção de código, corrupção de pilha ou manipulação de objetos), pode reescrever essas regras e ganhar privilégios sem passar pela autenticação normal.
Use mecanismos da linguagem para forçar imutabilidade: `final`, `const`, objetos imutáveis ou defensive copies. Para dados críticos de segurança, implemente verificações de integridade em tempo de execução ou seladores criptográficos. Valide dados sensíveis a cada acesso, não apenas na inicialização.