기술 · 파이썬 웹 · 인가 우회
Starlette 호스트 헤더 결함이 악용 목록에 올랐습니다 - 경로로 인가를 판단하는 코드를 점검하세요
파이썬 ASGI 프레임워크 Starlette 의 호스트 헤더 검증 결함 CVE-2026-48710 이 5월 21일 공개됐고, 미국 CISA 는 9월 2일 이를 실제 악용 목록에 올렸다. 요청 경로를 다시 조립하는 과정에서 `request.url.path` 가 실제 요청 경로와 달라질 수 있어, 경로로 인가를 판단하는 미들웨어가 우회될 수 있다. 고친 판은 1.0.1 이다.

Starlette 는 파이썬으로 비동기 웹 서비스를 만드는 경량 ASGI 프레임워크이자 툴킷으로, 저장소 설명에 따르면 완전한 프레임워크로도, 구성요소만 떼어 쓰는 툴킷으로도 쓰도록 설계돼 있다. 2026년 5월 21일 공개된 보안 권고 GHSA-86qp-5c8j-p5mr 은 이 Starlette 의 호스트 헤더 처리 문제를 다룬다. 심각도는 Moderate, CVSS 6.5 이고 1.0.0 이하가 영향 범위, 고친 판은 1.0.1 이다.
권고가 설명한 구조는 이렇다. 라우팅은 원본 HTTP 경로를 그대로 쓰지만 `request.url` 은 호스트 헤더를 재료로 다시 조립한다. 이때 헤더에 `/`·`?`·`#` 같은 문자가 섞여 있으면 경로·질의·조각의 경계가 달라져, 다시 해석된 `request.url.path` 가 실제 요청된 경로와 어긋난다. 권고가 든 예에서는 호스트 헤더가 `example.com/abc?bar=` 일 때 재조립 결과가 `http://example.com/abc?bar=/foo` 가 되어, 실제 경로가 `/foo` 인데도 해석된 경로는 `/abc` 가 된다.
문제는 그다음이다. 권고는 `request.url.path` 를 보안 판단에 쓰는 애플리케이션이 우회 위험에 놓인다고 적었다. 특히 경로 기반 인가 미들웨어가 취약하며, 앞단 프록시가 잘못된 형식의 호스트 헤더를 걸러 내지 않는 구성에서 더 그렇다. 분류된 약점은 CWE-444(HTTP 요청 해석 불일치)와 CWE-1289 다.
확인된 사실
- 결함
- CVE-2026-48710, 호스트 헤더 검증 미흡으로 인한 경로 불일치, Moderate / CVSS 6.5 (Starlette 보안 권고)
- 권고 공개
- 2026-05-21 (GitHub 권고 페이지 표기)
- 영향 판 / 고친 판
- 1.0.0 이하 / 1.0.1 (Starlette 보안 권고)
- 제보
- x41j, ehhthing, nic-lovin (Starlette 보안 권고)
- 약점 분류
- CWE-444, CWE-1289 (Starlette 보안 권고)
- CISA 악용 목록 등재
- 2026-09-02, 연방기관 조치 기한 2026-09-16 (The Hacker News)
- 관측된 악용
- LiteLLM 게이트웨이 침입에 CVE-2026-42271 과 함께 사용, XMRig 채굴기 설치 (The Hacker News)
어떻게 악용됐나
The Hacker News 는 9월 3일 보도에서 CISA 가 이 결함을 포함한 일곱 건을 악용 목록에 올렸다고 전했다. 같은 보도는 공격자가 LiteLLM 게이트웨이에 침입하면서 CVE-2026-42271 과 CVE-2026-48710 을 함께 썼고, ELF 바이너리 형태의 XMRig 채굴기를 설치하기 전에 대상 호스트를 식별하고 경쟁 채굴 프로세스를 종료시켰다고 전했다. 보도가 설명한 CVE-2026-48710 의 역할은 경로 주입을 통한 인증 우회다.
점수만 보면 6.5 로 이번에 함께 등재된 다른 결함들보다 낮다. 그러나 실제 공격에서 이 결함이 맡은 역할은 「문을 여는 것」이 아니라 「검문을 지나가는 것」이었다. 단독 점수가 낮은 결함이 사슬의 한 칸으로 쓰이는 전형적인 형태다.
이 결함은 `starlette` 패키지 자체에 있다. 직접 Starlette 로 작성한 애플리케이션이 아니더라도 의존성 목록에 Starlette 가 들어 있다면 설치된 판이 영향 범위에 드는지 확인해야 한다.
Our view
트리루의 시각 - 인가 판단은 「다시 조립한 값」이 아니라 원본을 봐야 한다
이번 결함의 핵심은 한 문장으로 줄어든다. 라우팅이 보는 경로와 인가가 보는 경로가 서로 다른 값이었다는 것이다. 웹 애플리케이션에서 이런 어긋남은 Starlette 만의 일이 아니다. 프록시를 거치며 헤더가 바뀌거나, 프레임워크가 편의를 위해 값을 재조립하거나, 미들웨어마다 다른 속성을 읽는 곳이라면 어디서든 생길 수 있다.
코드를 점검한다면 볼 자리는 분명하다. 관리자 경로 차단, 경로별 접근 제어, 특정 URL 예외 처리 같은 로직이 어떤 값을 읽고 있는지 확인하는 것이다. 재조립된 URL 속성이 아니라 요청의 원본 경로를 기준으로 판단하도록 맞추면 이번 결함이 성립하는 조건을 피할 수 있다.
우리는 의존성 쪽도 함께 보자고 권한다. 직접 쓰지 않는 라이브러리라도 다른 패키지에 딸려 들어와 설치돼 있을 수 있다. 이번처럼 점수가 높지 않은 결함은 갱신 우선순위에서 뒤로 밀리기 쉬운데, 실제 공격에서는 다른 결함과 엮여 쓰였다. 갱신 판단의 기준을 점수 하나로만 두지 않는 이유가 여기에 있다.
출처 · 이 기사는 아래 소식을 직접 확인해 트리루의 문장으로 다시 썼습니다
- 01
Starlette 보안 권고 (GitHub Advisory Database) · 2026.05.21 게재 · 2026.09.12 확인
확인한 것: 결함 구조와 재조립 예시·영향 판과 고친 판·CVSS 6.5·CWE 분류·제보자. Starlette 의 성격은 저장소 README(https://github.com/encode/starlette)에서 확인
https://github.com/advisories/GHSA-86qp-5c8j-p5mr
- 02
CISA Adds Seven Exploited Flaws as Attackers Deploy Reverse Shells and Crypto Miners
The Hacker News · 2026.09.03 게재 · 2026.09.12 확인
확인한 것: CISA 등재일과 9월 16일 기한·LiteLLM 게이트웨이 침입에서 CVE-2026-42271 과 함께 쓰인 경위·XMRig 설치 전 호스트 식별과 경쟁 프로세스 종료
https://thehackernews.com/2026/09/cisa-adds-seven-exploited-flaws-as.html
이 글은 AI 도구를 활용해 초안을 작성하고, 출처 자료와 내용을 대조해 편집했습니다. 기사의 사실과 트리루의 해설을 구별해 전합니다.
제작 방식과 이미지 사용, 정정 절차는 콘텐츠 제작·검토 기준에서 확인하실 수 있습니다.