Описание проблемы
В ходе проверки безопасности нашего кастомизированного развертывания Discourse мы обнаружили потенциальный риск исчерпания ресурсов, связанный с API загрузки файлов.
Детали
-
API загрузки: /uploads.json
-
Проблема: На этом эндпоинте, по-видимому, отсутствует ограничение скорости запросов. Любой аутентифицированный пользователь может быстро загрузить большое количество файлов.
-
Воспроизведение:
-
Автоматизируя запросы, пользователь может отправить тысячи запросов на загрузку за короткое время.
-
Мы подтвердили, что после отправки тысяч запросов на загрузку в директории хранилища находятся тысячи файлов.
-
Влияние на безопасность и ресурсы
-
Злоумышленники или даже обычные пользователи могут исчерпать дисковое пространство сервера, снизить производительность или вызвать операционные проблемы, загружая огромное количество файлов.
-
Это потенциально может быть использовано для атак типа «отказ в обслуживании» (DoS) или для непредвиденного увеличения затрат на хранение.
Вопросы
-
Есть ли встроенное ограничение скорости запросов или защита от злоупотреблений для эндпоинта /uploads.json в Discourse?
-
Существуют ли рекомендуемые настройки или плагины для ограничения частоты загрузки файлов пользователями или общего объема хранилища на одного пользователя?
-
Каковы лучшие практики предотвращения исчерпания ресурсов из-за загрузки файлов в развертываниях Discourse?
Благодарим за внимание и советы!