Weaknesses of type CWE-863
2,373 resultsFalha em Controle de Acesso
A aplicação implementa uma verificação de permissões, mas a lógica está incorreta ou incompleta, permitindo que um usuário acesse recursos ou execute ações que deveria estar impedido de fazer. O problema é que o desenvolvedor assume (errado) que a autenticação é suficiente, não valida o contexto da requisição ou implementa a autorização de forma frágil — por exemplo, verificando apenas o ID do usuário em um parâmetro sem validar no servidor, ou deixando lacunas em condições lógicas.
Um painel administrativo verifica se o usuário está logado, mas não confirma se é realmente um admin antes de exibir a página de configurações. Um usuário comum consegue acessar a URL /admin/settings e alterar parâmetros críticos porque o backend apenas confere a sessão ativa, não o papel atribuído. Ou um e-commerce valida se o ID do pedido existe, mas não confirma se pertence ao usuário autenticado — qualquer um consegue visualizar ou cancelar pedidos alheios.
Implemente verificações de autorização consistentes no servidor para cada ação sensível: confirme não apenas que o usuário está autenticado, mas que ele tem permissão explícita (role, escopo, proprietário do recurso). Use uma lista branca de ações permitidas, nunca lista negra. Teste a autorização com contas de diferentes perfis e tente contornar as verificações alterando parâmetros ou sessões.