Weaknesses of type CWE-37
6 resultsTravessia de diretórios (path traversal)
Ocorre quando uma aplicação aceita entrada do usuário e a usa para construir caminhos de arquivo sem validação adequada, permitindo que um atacante acesse arquivos fora do diretório pretendido. Um código que lê `/uploads/` + nome_do_arquivo do usuário pode ser enganado com entradas como `../../etc/passwd` para alcançar arquivos sensíveis do sistema.
Uma API que serve documentos fazendo `open('/var/docs/' + parametro_usuario)` fica vulnerável quando recebe `parametro_usuario='../../etc/passwd'`, expondo o arquivo de senhas do sistema. Outro caso: um formulário que permite download de arquivos submetidos, mas não bloqueia sequências `../` no nome.
Valide e normalize caminhos usando funções seguras da linguagem (ex: `Path.resolve()` em Node.js, `realpath()` em PHP, `os.path.normpath()` em Python), bloqueie caracteres perigosos como `..` e barras fora de contexto, e considere usar listas brancas de nomes de arquivo permitidos. Implemente testes que tentam deliberadamente contornar o controle com `../`, `..\` e variações codificadas.