오픈소스 취약점으로 수백만 AI 에이전트 해킹 위기
Python 기반 웹 프레임워크인 Starlette에서 'BadHost(CVE-2026-48710)'라는 심각한 인증 우회 취약점이 발견되었습니다. 이 취약점을 통해 해커는 서버에 침투하여 임상시험 데이터, 개인정보 등의 민감한 정보와 외부 서비스 인증 정보를 탈취할 수 있습니다. FastAPI, vLLM 등 주요 생태계뿐만 아니라 이를 기반으로 하는 수백만 대의 AI 에이전트와 도구가 영향을 받으므로 즉시 1.0.1 버전으로 업데이트 및 방화벽 설정 점검이 필요합니다.
보안 연구원의 경고에 따르면, 전 세계 수백만 개의 AI 에이전트와 도구가 심각한 취약점으로 인해 위험에 처해 있습니다. 해커는 이 취약점을 악용해 서버에 침투하여 민감한 데이터와 타사 계정의 인증 정보를 탈취할 수 있습니다. 이 취약점은 Starlette라는 오픈소스 프레임워크에 존재하며, 개발자에 따르면 이 프레임워크는 주당 3억 2,500만 회 다운로드됩니다. Starlette에 의존하는 수천 개의 다른 오픈소스 프로젝트 역시 이 취약점의 영향을 받습니다. 이 프레임워크는 ASGI(Asynchronous Server Gateway Interface, 비동기 서버 게이트웨이 인터페이스)의 구현체로, 대량의 요청을 동시에 효율적으로 처리할 수 있게 해줍니다. Starlette는 Python 앱에서 서비스를 구축하기 위해 널리 사용되는 FastAPI 및 기타 여러 프레임워크의 기반이 됩니다.
악용이 매우 쉽고 수백만 대의 서버가 노출되어 있습니다. ASGI, 나아가 Starlette은 MCP(Model Context Protocol, 모델 컨텍스트 프로토콜)를 실행하는 서버에 액세스할 수 있습니다. MCP는 주요 공급자의 AI 에이전트가 사용자 데이터베이스, 이메일 및 캘린더 계정, 기타 모든 종류의 리소스를 포함한 외부 소스에 액세스할 수 있도록 해줍니다. 이러한 외부 시스템과 연결하기 위해 MCP 서버는 각 시스템의 인증 정보를 저장하므로, 공격자 입장에서는 이를 침해할 때 특히 큰 가치가 있는 데이터 저장소가 됩니다. CVE-2026-48710로 추적되며 BadHost라는 이름으로 불리는 이 취약점은 악용하기가 매우 쉬우며, 적절하게 구성된 방화벽 뒤에 있지 않은 대부분의 시스템에 대해 작동합니다. FastAPI 외에도 vLLM 및 LiteLLM과 같이 널리 사용되는 다른 패키지들도 이 영향을 받습니다. BadHost는 금요일에 릴리즈된 1.0.1 이전 버전의 Starlette에 영향을 미칩니다.
Secwest의 연구원들은 "HTTP Host 헤더에 단일 문자를 주입하면 FastAPI의 라우팅 코어인 Starlette의 경로 기반 인증을 우회할 수 있다"고 밝혔습니다. 이어서 "FastAPI를 통해 이 취약점(CVE-2026-48710로 추적되며 발견자들에 의해 BadHost로 명명됨)은 Python AI 도구 생태계의 상당 부분에 영향을 미친다. vLLM(이 버그가 발견된 곳), LiteLLM, Text Generation Inference, 대부분의 OpenAI-shim 프록시, MCP 서버, 에이전트 하네스, 평가 대시보드 및 모델 관리 UI가 여기에 해당한다"고 설명했습니다. BadHost의 심각도 등급은 10점 만점에 7점입니다. Secwest는 이러한 분류가 Starlette에 의존하는 다른 앱을 사용하는 사람들에게 미치는 위협을 '실제보다 과소평가'한 것이라고 밝혔습니다. 이 취약점을 발견한 보안 회사 X41 D-Sec는 이를 '심각도(Critical Severity)'로 분류했습니다. X41 D-Sec는 동료 보안 회사인 Nemesis와 협력하여 특정 서버가 취약한지 확인할 수 있는 온라인 스캐너를 개발했습니다. X41 D-Sec의 연구원인 Markus Vervier는 스캔을 통해 현재 다음 유형의 데이터가 노출되어 있음을 발견했다고 밝혔습니다: 바이오 제약 AI(임상 시험 DB, M&A 데이터, SSRF), 신원 확인(안면 분석, KYB, 실시간 개인식별정보, 내부 코드베이스), IoT/산업(배스천을 통한 기기 SSH 접속, 원격 코드 실행), 이메일/SaaS(전체 사서함 읽기/보내기/삭제, S3 내보내기, 웹훅), HR/채용(지원자 개인식별정보, 채용 파이프라인 데이터), CMS/마케팅(구독자 목록, 대량 이메일 캠페인 발송/예약), 문서 관리(스캔한 문서 읽기, 업로드, 수정), 클라우드 모니터링(AWS 토폴로지, 분산 추적, 메트릭 쿼리), 사이버 보안(자산 인벤토리, 실시간 Nuclei 스캐너 액세스), 개인 건강/재정(영양 기록, 지출, 구독).
이 취약점의 핵심은 Starlette가 유효하지 않은 Host 헤더 값을 허용하여, Starlette의 request.url 객체를 사용하는 인증 앱이 승인되지 않은 액세스 요청을 승인하도록 만든다는 것입니다. X41 D-Sec는 이 호출에 의존하는 여러 앱에서 인증이 우회되는 것을 발견했다고 밝혔습니다. 그 외에도 해킹은 SSRF(Server-Side Request Forgery, 서버 측 요청 위조) 공격으로 이어질 수 있으며, 경우에 따라서는 원격 코드 실행도 가능합니다. X41 D-Sec는 이를 다음과 같이 설명했습니다. "Starlette은 HTTP Host 요청 헤더와 요청된 경로를 기반으로 요청된 URL을 재구성하지만, Host 헤더 값에 대한 어떠한 유효성 검사도 수행하지 않습니다."