잠재적 디렉터리 트래버설: /uploads/*로 인해 디렉터리 간 파일 접근 가능

문제 설명

커스터마이징된 Discourse 배포 환경의 보안 평가 과정에서 /uploads/* 엔드포인트와 관련된 잠재적인 디렉터리 트래버설 취약점이 발견되었습니다.

문제 상세

  • /uploads/에 접근하면 URL 경로를 조작하여 임의의 업로드 디렉터리에서 파일을 가져올 수 있습니다.

  • 예를 들어, 논리적으로 분리되거나 보호되어야 하는 서로 다른 업로드 디렉터리 간을 트래버설하여 파일에 접근할 수 있습니다.

  • 이러한 동작은 권한이 없는 사용자가 자신에게 의도되지 않은 민감한 파일이나 첨부 파일에 접근할 수 있게 하여 보안 위험을 초래할 수 있습니다.

예시

사용자 A가 개인 메시지(또는 다른 제한된 컨텍스트)에서 파일을 업로드했다고 가정해 보겠습니다.

공격자는 다음과 같은 URL을 구성할 수 있습니다:

https:///uploads/default/original/1X/../../another_directory/secret_file.jpg

이를 통해 공격자는 디렉터리 트리를 위로 트래버설하여 다른 디렉터리에 있는 파일에 접근할 수 있습니다.

보안 영향

  • 비공개, 내부 또는 기타 제한된 파일의 무단 공개
  • 파일 내용에 따라 권한 상승(Escalation)이 가능할 수 있음

질문 / 피드백 요청 사항

  • 현재 업로드 구현에서 이러한 동작이 의도된 것입니까?

  • /uploads/에서의 디렉터리 트래버설을 방지하기 위해 권장되는 구성이나 패치가 있습니까?

  • 이 문제가 상위(upstream) Discourse에서 논의되거나 완화되었습니까?

  • Discourse 배포 환경에서 파일 접근을 추가로 강화하기 위한 지침이 있습니까?

이 잠재적인 문제에 대한 관심과 피드백에 감사드립니다.

secure-uploads 기능에 관심이 있으실 수 있습니다.
https://meta.discourse.org/t/secure-uploads/meta/140017?u=moin