Fallos del tipo CWE-50

1 resultado

Equivalência de caminho: barras múltiplas no início

Quando a aplicação não normaliza corretamente caminhos que começam com múltiplas barras (como `//arquivo` ou `///diretorio`), um atacante pode contornar validações de caminho ou burlar controles de acesso. Diferentes sistemas tratam essas variações de forma diferente, permitindo acesso a recursos que deveriam estar bloqueados.

Ejemplo

Um servidor que bloqueia acesso a `/admin/secreto` pode ser enganado com `//admin/secreto` ou `///admin/secreto`, especialmente se a validação ocorre antes da normalização do caminho. Um segundo exemplo: uma whitelist que verifica `starts_with('/uploads')` deixa passar `//uploads` sem detecção correta de duplicidade.

Cómo mitigar

Normalize todos os caminhos logo na entrada da aplicação, removendo barras duplicadas e resolvendo `.` e `..` antes de qualquer validação. Use funções consolidadas de normalização (como `Path.normalize()` em linguagens modernas) e aplique validações sempre sobre o caminho já normalizado, nunca antes.