MCP의 CVE-2026-30623: Anthropic은 STDIO 명령 주입(Command Injection) 문제를 수정하지 않을 것입니다
요약
Anthropic의 공식 MCP SDK 4종에서 임의 명령 주입(Command Injection) 취약점인 CVE-2026-30623이 발견되었습니다. Anthropic은 해당 동작이 의도된 것이라며 패치를 거부했으며, 도구 오염(Tool Poisoning)을 통한 공격 위험도 함께 경고되었습니다.
핵심 포인트
- CVE-2026-30623은 모든 공식 MCP SDK에서 명령 주입 취약점을 노출함
- Anthropic은 STDIO 전송 방식의 결함을 의도된 동작으로 간주하여 수정을 거부함
- 20만 개 이상의 인스턴스가 취약한 상태로 노출되어 있음
- 도구 설명 필드를 악용하여 데이터를 탈취하는 '도구 오염' 공격 위험 존재
CVE-2026-30623은 4개의 모든 공식 MCP SDK에서 임의의 명령 주입 (Command Injection) 취약점을 노출하며, Anthropic은 이를 수정하지 않을 것입니다. 200,000개 이상의 인스턴스가 취약한 상태입니다.
CVE-2026-30623은 4개의 모든 공식 Model Context Protocol (MCP) SDK에서 임의의 명령 주입 (Command Injection) 취약점을 노출합니다. Anthropic은 해당 동작이 의도된 것이라고 확인했으며 패치를 거부하여, 200,000개 이상의 인스턴스가 취약한 상태로 남게 되었습니다.
주요 사실 (Key facts)
- CVE-2026-30623은 4개의 모든 공식 MCP SDK에 영향을 미칩니다.
- 1억 5천만 회의 다운로드 중 200,000개 이상의 인스턴스가 취약합니다.
- 340명 이상의 개발자가 2026년 3월에 악성 mcp-jira-sync 서버를 설치했습니다.
- 인덱싱된 17,468개의 MCP 서버 중 단 12.9%만이 높은 신뢰 기준을 통과했습니다.
- 약 1,400개의 서버 중 38.7%가 인증 없이 배포되었습니다.
핵심 요약 (Key Takeaways)
- CVE-2026-30623은 4개의 모든 공식 MCP SDK에서 임의의 명령 주입 (Command Injection) 취약점을 노출하며, Anthropic은 이를 수정하지 않을 것입니다.
- 200,000개 이상의 인스턴스가 취약합니다.
Anthropic이 수정하지 않을 STDIO 결함
2026년 4월 15일, OX Security는 Python, TypeScript, Java, Rust를 포함한 모든 공식 Model Context Protocol (MCP) SDK에서 취약점을 공개했습니다. 현재 CVE-2026-30623으로 지정된 이 결함은 서버의 설정 파일에 영향을 미칠 수 있는 사람이라면 누구나 호스트 머신에서 임의의 셸 명령 (Shell Command)을 실행할 수 있게 합니다. MCP의 STDIO 전송 방식은 설정 값을 아무런 정화 (Sanitization) 과정 없이 셸 실행으로 직접 전달합니다. 대상 MCP 서버가 성공적으로 시작되지 않더라도 명령은 실행됩니다. OX Security는 1억 5천만 회 이상의 다운로드로 구성된 공급망 내에 200,000개 이상의 취약한 인스턴스가 존재하는 것을 확인했습니다.
도구 오염 (Tool Poisoning): 두 번째 공격 벡터
별도의 공격 패턴은 CVE를 필요로 하지 않습니다. 도구 오염 (Tool Poisoning)은 도구의 설명 (description) 필드 내에 악의적인 지침을 숨기는 방식입니다. 이 필드는 모델이 도구를 어떻게, 언제 호출할지 결정하기 위해 읽는 텍스트입니다. 2026년 3월, 누군가 발견하기 전까지 340명 이상의 개발자가 mcp-jira-sync라는 이름으로 게시된 서버를 설치했습니다. 이 서버의 list_issues 도구는 설명 필드에 숨겨진 지침을 포함하고 있었으며, 이로 인해 연결된 에이전트들이 공격자의 서버로 보내는 모든 API 호출에 로컬 ~/.aws/credentials 파일의 내용을 포함하도록 만들었습니다. Koi Security는 postmark-mcp에서도 유사한 패턴을 발견했습니다. 이 프로젝트는 버전 1.0.16에서 에이전트가 보내는 모든 이메일을 공격자의 편지함으로 숨은 참조 (BCC) 하도록 하는 코드 한 줄을 조용히 추가하기 전까지, 15개의 깨끗한 릴리스를 배포했습니다.
7월 28일 사양 업데이트: OAuth 2.1 도입, 그러나 소급 적용되는 수정은 없음
2026-07-28 MCP 사양 후보 (specification release candidate)는 OAuth 2.1 및 OpenID Connect를 중심으로 권한 부여 (authorization) 구조를 재구축합니다. 클라이언트는 RFC 9207에 따라 모든 권한 부여 응답 시 토큰 발행자 (token issuer)를 검증하게 되며, 이를 통해 한 인증 서버의 응답이 다른 서버에 재전송되는 혼동 공격 (mix-up attack) 클래스를 차단합니다. 또한, 이 사양은 필수적인 스티키 세션 (sticky sessions) 요구 사항을 제거하여, 원격 MCP 서버가 일반적인 라운드 로빈 (round-robin) 로드 밸런서 뒤에 위치할 수 있도록 합니다. 하지만 이 사양이 수행하지 못하는 것들도 있습니다. 바로 200,000개의 취약한 STDIO 인스턴스를 소급하여 패치하거나, 업데이트 이후 유지 관리자가 오염된 도구 설명을 배포하는 것을 막는 일입니다. 이 사양은 서버 작성자들에게 권한 부여를 처리할 수 있는 표준화된 방법을 제공할 뿐, 그들을 대신해 작업을 수행해주지는 않습니다.
다음 mcp add를 수행하기 전 감사해야 할 사항
독립적인 조사(census) 결과, 인덱싱된 17,468개의 MCP 서버를 문서화, 유지보수 및 신뢰성 측면에서 평가했습니다. 그중 단 12.9%만이 높은 신뢰 기준을 통과했습니다. 약 1,400개의 서버를 대상으로 한 별도의 검토에서는 38.7%가 인증(authentication) 기능이 전혀 없는 상태로 배포된 것으로 나타났습니다. 새로운 서버를 추가하기 전에 다음 사항을 확인하십시오: 전송 방식(transport)을 검증하고(본인이 완전히 제어할 수 없는 설정을 사용하는 STDIO는 추가적인 정밀 조사가 필요함), 도구 설명을 읽으며, 설치 횟수를 신뢰 신호로 간주하지 마십시오. 또한 7월 28일 이후에는 단순히 "MCP 호환"이라는 라벨이 아니라 실제 OAuth 2.1 채택 여부를 확인하십시오.
주의 깊게 살펴볼 사항
Anthropic이 현재의 거부 의사에도 불구하고 결국 CVE-2026-30623에 대한 보안 권고(security advisory)나 SDK 패치를 발행할지, 그리고 2026년 4분기까지 MCP 서버 간의 OAuth 2.1 채택률이 30%를 초과할지 지켜보아야 합니다. 7월 28일에 출시될 사양 후보(spec release candidate)를 통해 마지막 순간의 변경 사항이 STDIO 살균(sanitization) 문제를 해결하는지 확인할 수 있을 것입니다.
출처: dev.to
[gn_mcp_protocol을 통해 7월 26일 업데이트됨]
InfoWorld에 따르면, 7월 28일 MCP 사양 후보(spec release candidate)는 상태가 없는(stateless) 서버 운영을 도입하여 스티키 세션(sticky sessions) 없이도 수평적 확장(horizontal scaling)을 가능하게 합니다. 이러한 아키텍처의 변화로 인해 서버를 현재의 상태 유지(stateful) 모델에서 벗어나 표준 라운드 로빈(round-robin) 로드 밸런서 뒤에 배치할 수 있게 됩니다. 이러한 움직임은 대규모 에이전트 워크플로의 배포를 단순화하기 위해 설계되었으나, CVE-2026-30623의 STDIO 명령 주입(command injection) 결함은 해결하지 않습니다 [InfoWorld 인용].
원문은 gentic.news에 게시되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기