잠재적 리소스 고갈: /uploads.json에 속도 제한이 없어 대량 파일 업로드 가능

문제 설명

커스터마이즈된 Discourse 배포 환경에 대한 보안 검토 중, 파일 업로드 API와 관련된 잠재적 자원 고갈 리스크를 발견했습니다.

상세 정보

  • 업로드 API: /uploads.json

  • 문제: 해당 엔드포인트에 대한 명백한 레이트 리미팅(rate limiting)이 없습니다. 인증된 사용자는 짧은 시간 내에 대량의 파일을 빠르게 업로드할 수 있습니다.

  • 재현 방법:

    • 요청을 자동화하면 사용자가 짧은 시간 내에 수천 개의 업로드 요청을 보낼 수 있습니다.

    • 수천 개의 업로드 요청을 보낸 후, 저장 디렉토리에 수천 개의 파일이 생성되었음을 확인했습니다.

보안/자원 영향

  • 공격자나 일반 사용자는 대량의 파일을 업로드하여 서버 저장소를 고갈시키거나, 성능 저하를 유발하거나, 운영상의 문제를 일으킬 수 있습니다.

  • 이를 악용하여 서비스 거부(DoS) 공격을 수행하거나, 예상치 못한 저장소 비용을 증가시킬 수 있습니다.

질문

  • Discourse의 /uploads.json 엔드포인트에 내장된 레이트 리미팅 또는 악용 방지 기능이 있나요?

  • 사용자의 업로드 빈도나 사용자별 총 저장소 사용량을 제한하기 위한 권장 설정이나 플러그인이 있나요?

  • Discourse 배포 환경에서 파일 업로드로 인한 자원 고갈을 방지하기 위한 모범 사례가 있나요?

관심과 조언을 주셔서 감사합니다!