Weaknesses of type CWE-29

64 results

Travessia de Diretório via Prefixo '..filename'

Quando uma aplicação constrói caminhos de arquivo concatenando entrada do usuário diretamente, sem validação, um atacante pode usar sequências como '..filename' para escapar do diretório intendido e acessar arquivos fora da árvore autorizada. O perigo está em expor ou modificar arquivos sensíveis do sistema.

Example

Uma função que serve downloads recebe 'file=../../../etc/passwd' como parâmetro. Se o código não validar ou normalizar o caminho antes de abrir o arquivo, o atacante consegue ler arquivos críticos do servidor que não deveriam ser acessíveis publicamente.

How to mitigate

Valide e normalize todos os caminhos de arquivo usando funções específicas (ex: `realpath()` em PHP, `Path.GetFullPath()` em C#), implemente listas brancas de nomes permitidos, e confine acessos a um diretório raiz usando chroot ou sandbox. Nunca confie em entrada do usuário para montagem de caminhos.