Falhas do tipo CWE-372

9 resultados

Distinção Incompleta de Estados Internos

O software não diferencia adequadamente entre múltiplos estados internos durante sua execução, permitindo transições inválidas ou comportamentos inesperados. Quando o código não valida ou não mantém corretamente o rastreamento do estado atual, um atacante pode explorar essa confusão para contornar controles de segurança, acessar recursos não autorizados ou desencadear operações fora de ordem.

Exemplo

Uma aplicação autenticada inicia uma operação sensível e marca um flag interno como 'processando'. Se não houver validação rigorosa dessa transição de estado, um atacante poderia reiniciar a sessão ou manipular requisições para pular etapas intermediárias, executando a operação sensível em estado não preparado ou sem as verificações de segurança esperadas.

Como mitigar

Implemente máquinas de estado explícitas com validação rigorosa de cada transição permitida; use flags e variáveis de estado imutáveis ou protegidas, e sempre verifique o estado esperado antes de executar operações críticas. Testes de segurança (fuzzing de fluxo de estados) ajudam a identificar caminhos inválidos.