Weaknesses of type CWE-55

1 result

Equivalência de caminho: diretório de ponto único (/./) ignorado

A fraqueza ocorre quando o software não reconhece que `/./ ` (barra-ponto-barra) é equivalente ao diretório atual e pode ser usado para contornar validações de caminho. Um atacante insere `/./ ` em um path para burlar verificações de segurança que não normalizam rotas, acessando recursos que deveriam estar bloqueados.

Example

Um WAF ou validador bloqueia acesso a `/admin/config`, mas permite `/admin/./config` porque não reconhece a equivalência. O servidor resolve a rota e entrega o arquivo protegido. Outro caso: validação de extensão falha em `/upload/shell.php/./jpg` porque processa antes de normalizar.

How to mitigate

Normalize todos os caminhos de entrada canonicalizando-os (remova `./ `, `../`, symlinks) antes de qualquer validação. Use funções nativas seguras: em Python `os.path.normpath()`, em Java `java.nio.file.Paths.get().toRealPath()`, em PHP `realpath()`. Valide sempre após normalização, nunca antes.