개인 메시지 첨부 파일이 인증되지 않은 사용자에게 노출됨 (인증 검사 누락)

문제 설명

커스터마이즈된 Discourse 포럼의 보안 평가 중, 개인 메시지에서 업로드된 이미지 첨부 파일에 영향을 미치는 잠재적인 인증 문제를 발견했습니다.

상세 정보

  • 업로드 API: /uploads.json

  • 접근 URL: /uploads/default/original/1X/{file_name}

  • 재현 방법:

    1. 사용자가 개인 메시지에서 이미지를 업로드합니다 (for_private_message=true).

    2. 생성된 이미지는 어떤 제3자(로그인되지 않은 사용자 또는 인코그니토 모드 사용자 포함)라도 직접 링크를 통해 접근할 수 있습니다.

보안 우려 사항

  • 개인 메시지에서 업로드된 이미지는 기밀성이 유지되어야 하며, 대화 참여자만 접근할 수 있어야 합니다.

  • 그러나 현재 구현 방식으로는 인증 또는 권한 부여 상태와 관계없이 직접 URL을 가진 누구나 이러한 파일을 다운로드할 수 있습니다.

질문

  • 이는 현재 Discourse 구현에서 의도된 동작인가요?

  • 개인 메시지 첨부 파일이 적절히 보호되고 권한이 있는 사용자만 볼 수 있도록 보장하기 위해 권장되는 설정이나 플러그인이 있나요?

  • 이 문제가 Upstream Discourse 프로젝트에서 논의되거나 처리된 적이 있나요?

  • Discourse 배포 환경에서 개인 업로드를 보호하기 위한 모범 사례가 있나요?

  • 이 중요한 보안 우려 사항에 대한 도움과 조언에 감사드립니다!

참고할 만한 내용입니다:

https://meta.discourse.org/t/secure-uploads/meta/140017?u=merefield