BadHost – CVE-2026-48710: Starlette Host-Header 인증 우회 취약점
·2026.05.26 18:07
Starlette의 Host 헤더 처리 미흡으로 vLLM, LiteLLM 등 주요 AI 인프라의 인증이 우회될 수 있는 보안 취약점이 발견되었습니다.
Starlette 1.0.1 미만 버전에서 request.url을 생성할 때 Host 헤더를 검증 없이 사용하여 발생하는 CVE-2026-48710 취약점이 보고되었습니다.
공격자는 조작된 Host 헤더를 통해 실제 요청 경로와 다른 request.url.path를 생성할 수 있으며, 이를 통해 경로 기반 인증 미들웨어를 우회할 수 있습니다. 예를 들어, 공격자가 Host: example.com/health?x=와 같은 헤더를 보내면, 인증이 필요한 /protected 경로로 접근하면서도 시스템은 이를 /health 경로로 인식하게 됩니다.
vLLM, LiteLLM, MCP 서버, AI 에이전트 프레임워크 등 FastAPI 및 Starlette 기반의 수많은 AI 인프라가 이 취약점에 노출되어 있습니다. 특히 MCP 서버는 인증되지 않은 OAuth 탐색 엔드포인트를 사용하는 특성상 공격에 매우 취약할 수 있습니다.
대응 방안:
- Starlette 업데이트: 최신 버전인 1.0.1 이상으로 업데이트하여 유효하지 않은 문자가 포함된
Host헤더를 무시하도록 합니다. - 인증 방식 개선: 경로 기반 인증 미들웨어 대신 FastAPI의
Depends()나 Starlette의requires()와 같이 엔드포인트 자체에 적용되는 보안 방식을 사용합니다. - 리버스 프록시 도입: Nginx, Caddy, Traefik 등을 앞단에 배치하여
Host헤더를 검증 및 정규화합니다. - 코드 수정: 미들웨어에서
request.url.path대신 조작이 불가능한scope["path"]를 사용합니다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.