-
Notifications
You must be signed in to change notification settings - Fork 105
Open
Description
요약
비밀글/제한글의 첨부파일 다운로드 경로에서 본문 조회 시 적용되는 비밀글/읽기 권한 검증이 누락되어,
직접 URL 요청으로 첨부파일에 접근할 수 있는 문제가 확인되었습니다.
즉, 비밀글 본문은 못 보더라도 첨부파일은 우회 접근이 가능한 상태입니다.
영향 범위
- 웹 다운로드 경로:
GET /board/{bo_table}/{wr_id}/download/{bf_no} - API 다운로드 경로:
GET /api/v1/boards/{bo_table}/writes/{wr_id}/files/{bf_no}
문제 원인
다운로드 흐름에서 아래 검증만 수행됩니다.
validate_download_level()
하지만 비밀글 보호에 핵심인 아래 검증은 누락되어 있습니다.
validate_read_level()validate_secret()(또는 동일 수준의 비밀글 접근 검증)
결과적으로 첨부파일 반환 직전 권한 경계가 깨집니다.
재현 시나리오 (개요)
- 일반 사용자(권한이 낮은 사용자)로 로그인
- 대상 게시판/그룹 접근 가능 상태에서
wr_id,bf_no를 추정/확인 - 아래 URL 직접 호출
/board/{bo_table}/{wr_id}/download/{bf_no}/api/v1/boards/{bo_table}/writes/{wr_id}/files/{bf_no}
- 비밀글 본문 접근 권한이 없어도 첨부파일 다운로드 가능
보안 영향
- 비밀/제한 게시글의 첨부파일 무단 열람
- 내부 문서/개인정보 등 민감 데이터 유출 가능
- 비밀글 정책의 실질적 우회
권장 수정안
다운로드 라우트에서도 본문 조회와 동일한 접근통제를 강제해 주세요.
예시:
DownloadFileService에validate_download_access()추가block_read_comment()validate_read_level()validate_secret()
- 웹/API 다운로드 라우트에서
get_board_file()이전에 위 메서드 호출 validate_download_level()은 보조 검증으로 유지
참고 코드 위치
bbs/board.py(다운로드 라우트)api/v1/routers/board.py(API 다운로드 라우트)service/board/read_post.py(DownloadFileService)
필요하시면 재현 가능한 요청 형태와 패치 제안(diff 형태)도 추가로 제공드리겠습니다.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels