Falhas do tipo CWE-39

1 resultado

Travessia de diretório via padrão 'C:dirname'

Fraqueza onde um aplicativo em Windows não valida corretamente caminhos de arquivo que usam a notação 'C:nome', permitindo que um atacante escape do diretório pretendido. A sintaxe 'C:arquivo' no Windows é interpretada como um caminho relativo ao diretório atual da unidade C:, possibilitando acesso não autorizado a arquivos fora do escopo esperado.

Exemplo

Uma aplicação valida se um caminho começa com 'C:\temp\' para garantir que está dentro de um sandbox, mas não valida a notação alternativa 'C:..\sistema\config.ini', que o Windows interpreta como navegação na unidade C: e consegue sair do diretório restrito.

Como mitigar

Normalizar e canonicalizar todos os caminhos antes de validação (converter para forma absoluta completa com GetFullPathName ou equivalente), validar contra uma whitelist de diretórios permitidos usando a forma canônica, e rejeitar caminhos que contenham caracteres suspeitos ou notações alternativas como 'unidade:' sem barra.