AI 에이전트와 LLM(대규모 언어 모델) 서빙 인프라에 심각한 인증 우회 취약점이 공개됐다. ‘BadHost’로 명명된 이 취약점(CVE-2026-48710)은 주간 3억 2,500만 건의 다운로드를 기록하는 Python 웹 프레임워크 Starlette에서 발견됐다. Secwest와 X41 D-Sec 보안 연구팀이 vLLM 소스 코드 감사 과정에서 발견했으며, 공격자가 HTTP Host 헤더에 슬래시(/)·물음표(?)·샵(#) 중 하나를 삽입하기만 하면 경로 기반 접근 제어를 우회할 수 있다. 공식 위험 점수는 6.5(보통)이나, 연구팀은 실제 파급 효과를 고려하면 심각으로 분류해야 한다고 주장한다.
취약점의 근본 원인은 Starlette가 HTTP Host 헤더를 그대로 신뢰해 request.url을 재구성하는 방식에 있다. Host 헤더에 특수문자가 포함되면 재파싱 과정에서 경로·쿼리·프래그먼트 경계가 틀어지고, 결과적으로 미들웨어가 인증 결정에 사용하는 request.url.path가 ASGI 서버가 실제 라우팅에 쓴 경로와 달라진다. 이 단순한 조작만으로 인증 우회, SSRF(서버사이드 요청 위조), 원격 코드 실행까지 연쇄로 이어지는 공격 체인이 성립한다고 연구팀은 밝혔다. 특히 MCP(Model Context Protocol) 서버가 위험하다. MCP 사양이 인증 없이 접근 가능한 OAuth 검색 엔드포인트를 의무화하고 있어, BadHost를 통한 악용 경로가 비교적 명확하다는 지적이다.

AI 서비스 인프라가 내부 네트워크, 실험실 서브넷, LLM 연구 환경에 배포되는 경우가 많아 일반적인 프로덕션 환경보다 역방향 프록시 보호가 약하다는 점도 위험을 키운다. CDN, 로드밸런서, 프론팅 웹 서버 뒤에 Starlette·FastAPI 서비스가 위치한 경우 공격에 사용되는 특수문자가 DNS에서 유효하지 않아 실질적 위협이 줄어든다. 취약점은 Starlette 1.0.1 패치로 수정됐다. 무료 스캐너가 badhost.org에서 제공된다.
취약점이 단일 파일이나 단일 저장소의 버그가 아닌 ASGI 서버·Starlette·미들웨어 세 계층의 상호작용에서 비롯된다는 점이 주목받는다. 각 구성 요소가 단독으로는 올바르게 동작하지만, 조합하면 취약점이 발생하는 구조다. AI 서비스가 복잡한 소프트웨어 스택 위에 쌓이면서 이런 계층 간 상호작용 취약점이 늘어날 수 있다는 경고로 받아들여진다. Starlette 또는 FastAPI를 AI 에이전트·LLM 게이트웨이·MCP 서버에 사용 중이라면 즉시 1.0.1로 업데이트해야 한다.


