TL;DR
- Google의 공식 MCP Toolbox for Databases에서 경로 매개변수 조작으로 내부 엔드포인트에 요청을 보내는 서버 측 요청 위조(SSRF) 취약점 CVE-2026-14540이 발견됐으며, 심각도는 CVSS 8.0임.
- 취약점은 HTTP 클라이언트에 리다이렉트 정책과 대상 IP 검증이 없는 점에서 비롯되며, 공격자가 일부 통제하는 프롬프트를 통해 악용될 수 있음.
- 일반적인 소프트웨어 구성 분석(SCA)은 애플리케이션과 MCP 서버 사이의 JSON-RPC 전송 경계에서 호출 그래프가 끊기므로 이 취약점 유형을 포착하기 어려움.
- MCP 서버의
tools/list매니페스트와 서버 내부 핸들러를 연결해 분석하고, 모델이 호출할 수 있는 매니페스트의 도구를 노출된 것으로 간주해야 한다는 접근을 제안함. - 주말 동안 작성한 스캐너
mcp-safeguard가 취약점을 발견했으며, Google은 DNS 리바인딩·TOCTOU 보호와 IP 범위 허용·차단 목록 등을 포함한 실질적인 수정 사항을 반영함.
취약점 공개 보고
- CVE-2026-14540은 Google의 MCP Toolbox for Databases에서 발견된 서버 측 요청 위조(SSRF) 취약점이며, CVSS 점수는 8.0임.
- HTTP 클라이언트에
CheckRedirect정책과 대상 IP 검증이 없어, 조작된 경로 매개변수가 Toolbox를 리다이렉트해 내부 엔드포인트로 요청을 보내게 할 수 있음. - 이 요청은 프롬프트를 통제하는 주체를 대신해 발생할 수 있음.
- 취약점을 주말 동안 작성한 스캐너로 발견했으며, Google의 수정 사항에서 이름을 명시적으로 인정받음.
- Anas Mohiuddin Syed · 독립 연구자, 시카고
- anasmohiuddinsyed@gmail.com · github.com/syedanas01
기존 도구가 놓치는 이유
- 소프트웨어 구성 분석(SCA)은 애플리케이션 코드에서 호출 그래프를 만들고, 취약한 함수에 도달할 수 있는지를 확인함. 애플리케이션이 직접 가져오는 라이브러리에는 적절한 분석 방식이지만, MCP 서버에는 그대로 적용하기 어려움.
- MCP 서버는 표준 입출력(stdio)이나 HTTP를 통해 JSON-RPC 메시지로 호출됨. 애플리케이션이 서버 함수를 직접 호출하지 않고 메시지를 보내므로 호출 그래프가 전송 경계에서 끊기며, 도달성 분석 엔진은 경계 너머를 확인하지 못함.
- 첫 번째 결과는 연결 정보가 사라진 것이 아니라 다른 산출물에 있다는 점임. 서버의
tools/list응답은 호출 가능한 진입점과 JSON 스키마를 열거함. 따라서 단일 호출 그래프 대신 매니페스트를 연결점으로 삼아, 배포 환경에서 실제로 노출된 도구를 확인한 뒤 해당 핸들러를 서버 내부 분석의 시작점으로 삼아야 함. - 두 번째 결과는 호출 주체가 모델이라는 점임. 일반 프로그램에서 함수 실행 여부는 코드로 판정할 수 있지만, 도구 실행 여부는 공격자가 일부 통제할 수 있는 입력에 조건화된 모델이 런타임에 결정함.
- MCP 도구의 노출 범위는 도달 가능 범위와 같다고 보는 것이 보수적이며 타당한 접근임. 제공되는 매니페스트에 포함된 도구는 모두 도달 가능한 것으로 간주하고, 허용 목록·권한 범위·사람의 확인 등 모델 외부의 통제만으로 도달 범위를 줄여야 하며 호출 그래프상의 거리는 근거로 삼지 않음.
스캐너의 실제 동작
mcp-safeguard는 PyPI에 배포되고 Zenodo에 DOI로 보관된 스캐너임.- 도구 매니페스트와 핸들러에 CVSS 점수를 반영한 정적 분석 규칙을 적용함.
- 분석 대상은 검증되지 않은 리다이렉트 대상과 SSRF, 도구 설명을 통한 인젝션, 허용 목록·차단 목록 우회 패턴, 지나치게 광범위한 도구 권한, 자격 증명 노출임.
- 규칙은 단순하지만, MCP 의존성 유형에 대한 공격자 관점의 검토가 배포 속도에 비해 거의 없었기 때문에 Google Toolbox에서 CVSS 8.0 취약점을 찾을 수 있었음.
공개 타임라인
- 2026-07-03: Google이 CVE-2026-14540을 예약함.
- 2026-07-31: CVSS 8.0으로 공개되고,
googleapis/mcp-toolbox의 PR #3448에서 수정됐으며, 발견자가 이름으로 인정받음. - 공개 전 과정에서 조정된 공개 절차를 따랐으며, 공급업체보다 먼저 내용을 공개하지 않음.
- 수정 사항은 DNS 리바인딩 및 검사 시점과 사용 시점 간(TOCTOU) 보호, IP 범위 허용·차단 목록, 기본 URL의 빠른 검증을 포함하는 실질적인 SSRF 방어임.
앞으로의 전망
- 운영 환경의 MCP 서버 수는 이를 공격자 관점에서 살펴보는 사람 수보다 훨씬 빠르게 증가하고 있음. 이번 발견은 어렵지 않은 취약점이었으며, 그동안 주목받지 않았던 사례임.
- 열거 가능한 모든 공개 MCP 서버를 대상으로 스캐너를 실행 중이며, 더 폭넓은 내용을 공개하기 전에 결과를 먼저 비공개로 전달받고 싶은 MCP 서버 관리자는 이메일로 연락할 수 있음: anasmohiuddinsyed@gmail.com
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요