Fallos del tipo CWE-368

6 resultados

Condição de corrida em troca de contexto

Fraqueza onde o código assume que o contexto de execução (usuário, permissões, estado) permanece constante entre verificações de segurança e operações sensíveis. Quando dois fluxos de execução concorrentes (threads, processos ou requisições) modificam o contexto simultaneamente, a verificação fica inválida e a operação pode ocorrer com privilégios ou estado diferentes do esperado.

Ejemplo

Uma aplicação web verifica se o usuário tem permissão de admin (isAdmin = true), mas entre essa verificação e a execução da operação sensível (deletar dados), outra requisição do mesmo usuário reduz suas permissões. O código executa a operação com privilégios que já não deveria ter.

Cómo mitigar

Use mecanismos de sincronização (locks, mutexes) para garantir atomicidade entre verificação e execução. Prefira verificar permissões novamente logo antes da operação sensível, não apenas no início do fluxo. Em aplicações web, valide o contexto (sessão, permissões) a cada operação crítica, não apenas uma vez.