Travessia de Diretório Potencial: /uploads/* permite acesso a arquivos entre diretórios

Descrição do Problema

Durante uma avaliação de segurança de nossa implantação personalizada do Discourse, descobrimos uma vulnerabilidade potencial de directory traversal relacionada ao endpoint /uploads/*.

Detalhes do Problema

  • Acessar /uploads/ permite que usuários busquem arquivos de diretórios de upload arbitrários manipulando o caminho da URL.

  • Por exemplo, é possível percorrer e acessar arquivos em diferentes diretórios de upload que deveriam ser logicamente separados ou protegidos.

  • Esse comportamento pode permitir que usuários não autorizados acessem arquivos ou anexos confidenciais que não se destinam a eles, o que representa um risco de segurança.

Exemplo

Suponha que o usuário A faça o upload de um arquivo em suas mensagens privadas (ou em outro contexto restrito).

Um invasor pode criar uma URL como:

https://\u003cdominio-do-seu-forum\u003e/uploads/default/original/1X/../../outro_diretorio/arquivo_secreto.jpg

Isso permite que o invasor suba na árvore de diretórios e acesse arquivos em outros diretórios.

Impacto na Segurança

  • Divulgação não autorizada de arquivos privados, internos ou restritos de outra forma.

  • Possível escalonamento dependendo do conteúdo do arquivo.

Perguntas / Feedback Solicitado

  • Este é um comportamento esperado na implementação atual de upload?

  • Existem configurações ou patches recomendados para prevenir directory traversal em /uploads/?

  • Este problema foi discutido ou mitigado no Discourse upstream?

  • Vocês têm orientações para proteger ainda mais o acesso a arquivos em implantações do Discourse?

Obrigado por sua atenção e feedback sobre este problema potencial.

Talvez você se interesse pelo recurso secure-uploads.

3 curtidas