Skip to content

[보안] 내부 인증 토큰 미설정 시 fail-open 취약점 수정 #79

Description

@coderabbitai

배경

PR #77 코드 리뷰 중 발견된 보안 이슈입니다.
요청자: @hwangtae123
관련 PR: #77
관련 코멘트: #77 (comment)

문제 내용

app/api/document.py Line 40에서 환경 변수 INTERNAL_API_TOKEN이 설정되지 않은 경우, 인증 없이 모든 요청이 통과됩니다 (fail-open).

if _INTERNAL_TOKEN and x_internal_token != _INTERNAL_TOKEN:
    raise HTTPException(status_code=403, detail="forbidden")

같은 파일 _ALLOWED_STORAGE_HOSTS에는 localhost, host.docker.internal 등 내부 호스트가 포함되어 있어, 운영 환경에서 env 하나만 누락되어도 내부 파일 fetch 트리거가 외부에 노출될 수 있습니다.

수정 방향

배포 시 아래 방향으로 수정:

  • INTERNAL_API_TOKEN이 미설정된 경우 기본적으로 403 반환 (fail-closed)
  • 로컬 개발 환경 우회는 별도 DEBUG 플래그(APP_ENV=development 등)로만 허용
  • _INTERNAL_TOKEN이 설정된 경우 반드시 x_internal_token과 일치해야 통과

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions