Описание проблемы
В ходе оценки безопасности нашего кастомизированного развертывания Discourse была обнаружена потенциальная уязвимость обхода директорий, связанная с конечной точкой /uploads/*.
Детали проблемы
-
Доступ к /uploads/ позволяет пользователям получать файлы из произвольных директорий загрузок путем манипуляции путем в URL.
-
Например, возможно обойти защиту и получить доступ к файлам в разных директориях загрузок, которые должны быть логически разделены или защищены.
-
Такое поведение может позволить несанкционированным пользователям получить доступ к конфиденциальным файлам или вложениям, не предназначенным для них, что создает угрозу безопасности.
Пример
Предположим, пользователь А загрузил файл в свои личные сообщения (или в другом ограниченном контексте).
Злоумышленник может сформировать URL, например:
https://<ваш-домен-форума>/uploads/default/original/1X/../../another_directory/secret_file.jpg
Это позволяет злоумышленнику подняться по дереву директорий и получить доступ к файлам в других директориях.
Влияние на безопасность
-
Несанкционированное раскрытие приватных, внутренних или иначе ограниченных файлов
-
Возможная эскалация в зависимости от содержимого файла
Запрашиваемые вопросы / обратная связь
-
Является ли это ожидаемым поведением в текущей реализации загрузки?
-
Существуют ли рекомендуемые конфигурации или патчи для предотвращения обхода директорий в /uploads/?
-
Обсуждалась ли эта проблема или были ли приняты меры по её устранению в исходном коде Discourse?
-
Есть ли у вас рекомендации по дальнейшему обеспечению безопасности доступа к файлам в развертываниях Discourse?
Благодарим за внимание и обратную связь по поводу этой потенциальной проблемы.