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.