Falhas do tipo CWE-647

10 resultados

Decisões de autorização baseadas em caminhos de URL não canônicos

A aplicação toma decisões de controle de acesso analisando o caminho da URL tal como recebido, sem normalizá-lo antes. Um atacante usa variações equivalentes do mesmo caminho (como `../admin`, `..%2fadmin`, ou `//admin`) para contornar regras de autorização que só verificam a forma literal. O servidor interpreta o caminho normalizado de forma diferente da regra de segurança.

Exemplo

Um WAF bloqueia acesso a `/admin`, mas a aplicação permite `/../admin` ou `/admin/..` porque a regra verifica apenas a string exata. O navegador ou servidor normaliza para `/admin` internamente, mas a autorização já foi aprovada pela regra literal enganada.

Como mitigar

Normalize todo caminho de URL (decode, resolve `..` e `//`, compare forma canônica) antes de aplicar qualquer regra de autorização. Use funções nativas da linguagem (ex: `normalize()` em Java, `os.path.normpath()` em Python) e valide contra a forma canônica, nunca contra a string bruta do usuário.