Description du problème
Lors d’un examen de sécurité de notre déploiement Discourse personnalisé, nous avons découvert un risque potentiel d’épuisement des ressources lié à l’API de téléversement de fichiers.
Détails
-
API de téléversement : /uploads.json
-
Problème : Il n’y a apparemment aucune limitation de débit sur ce point de terminaison. Tout utilisateur authentifié peut téléverser rapidement un grand nombre de fichiers.
-
Reproduction :
-
En automatisant les requêtes, un utilisateur peut envoyer des milliers de requêtes de téléversement en peu de temps.
-
Nous avons vérifié qu’après l’envoi de milliers de requêtes de téléversement, le répertoire de stockage contient des milliers de fichiers.
-
Impact sur la sécurité/les ressources
-
Des attaquants ou même des utilisateurs normaux pourraient épuiser le stockage du serveur, dégrader les performances ou déclencher des problèmes opérationnels en téléversant un nombre massif de fichiers.
-
Cela pourrait potentiellement être utilisé à mauvais escient pour un déni de service ou pour augmenter les coûts de stockage de manière inattendue.
Questions
-
Existe-t-il une limitation de débit intégrée ou une prévention des abus pour le point de terminaison /uploads.json dans Discourse ?
-
Existe-t-il des paramètres recommandés ou des plugins pour limiter la fréquence de téléversement des utilisateurs ou l’utilisation totale du stockage par utilisateur ?
-
Existe-t-il des meilleures pratiques pour prévenir l’épuisement des ressources causé par les téléversements de fichiers dans les déploiements Discourse ?
Merci de votre attention et de vos conseils !