Weaknesses of type CWE-372

9 results

Distinção Incompleta de Estados Internos

Ocorre quando o software não diferencia adequadamente entre estados internos distintos, tratando situações diferentes como se fossem iguais. Isso permite que um atacante transicione o sistema para um estado não previsto ou contorne lógica de segurança explorando essa confusão de estados.

Example

Um servidor de autenticação que não diferencia entre 'usuário logado com privilégios completos' e 'usuário em processo de autenticação multifator' pode permitir que alguém acesse recursos protegidos antes de completar a segunda autenticação, porque a lógica de autorização não verifica o estado exato.

How to mitigate

Implemente máquinas de estado explícitas e rigorosas, validando sempre o estado atual antes de executar operações sensíveis. Use enums ou constantes nomeadas para representar cada estado permitido e rejeite transições inválidas.