Weaknesses of type CWE-38

1 result

Travessia de diretório com caminho absoluto

A aplicação aceita um caminho de arquivo fornecido pelo usuário e o processa como se fosse relativo, mas o atacante fornece um caminho absoluto (começando com `/` ou `C:\`) para acessar arquivos fora do diretório esperado. O sistema não valida ou rejeita esses caminhos absolutos, permitindo leitura ou escrita em qualquer parte do sistema de arquivos.

Example

Uma função de upload de documentos espera um nome como 'relatorio.pdf' dentro de `/uploads/`, mas o usuário envia '/etc/passwd' ou 'C:\Windows\System32\config\SAM' como caminho, e a aplicação processa sem verificação, expondo arquivos sensíveis.

How to mitigate

Valide e normalize todos os caminhos de arquivo: rejeite caminhos absolutos (que começam com `/`, `\` ou contenham `:`), use apenas nomes de arquivo simples (sem `/` ou `\`), e confine operações a um diretório base usando `realpath()` ou equivalente para garantir que o caminho final fica dentro da zona permitida.