Traversée de répertoire potentielle : /uploads/* permet l'accès à des fichiers inter-répertoires

Description du problème

Lors d’une évaluation de sécurité de notre déploiement Discourse personnalisé, nous avons découvert une vulnérabilité potentielle de traversée de répertoire liée au point de terminaison /uploads/*.

Détails du problème

  • L’accès à /uploads/ permet aux utilisateurs de récupérer des fichiers à partir de répertoires de téléchargement arbitraires en manipulant le chemin de l’URL.

  • Par exemple, il est possible de traverser et d’accéder à des fichiers dans différents répertoires de téléchargement qui devraient être logiquement séparés ou protégés.

  • Ce comportement pourrait permettre à des utilisateurs non autorisés d’accéder à des fichiers ou des pièces jointes sensibles qui ne leur sont pas destinés, ce qui présente un risque de sécurité.

Exemple

Supposons que l’utilisateur A télécharge un fichier dans ses messages privés (ou un autre contexte restreint).

Un attaquant peut créer une URL telle que :

https:///uploads/default/original/1X/../../autre_repertoire/fichier_secret.jpg

Cela permet à l’attaquant de remonter dans l’arborescence des répertoires et d’accéder à des fichiers dans d’autres répertoires.

Impact sur la sécurité

  • Divulgation non autorisée de fichiers privés, internes ou autrement restreints

  • Escalade possible en fonction du contenu du fichier

Questions / Commentaires sollicités

  • S’agit-il d’un comportement attendu dans l’implémentation actuelle des téléchargements ?

  • Existe-t-il des configurations ou des correctifs recommandés pour empêcher la traversée de répertoire dans /uploads/ ?

  • Ce problème a-t-il été discuté ou atténué dans le flux ascendant de Discourse ?

  • Avez-vous des directives pour sécuriser davantage l’accès aux fichiers dans les déploiements Discourse ?

Merci de votre attention et de vos commentaires sur ce problème potentiel.

Peut-être que la fonctionnalité secure-uploads vous intéresse.

3 « J'aime »