취약점  ·  2026-10-07

MCP TypeScript SDK OAuth 자격 증명 리디렉션 — 악성 MCP 서버가 사용자 상호 작용 없이 refresh_token/client_secret 탈취

취약점High 영향도GlobalCVE-2026-104850
공식 MCP TypeScript SDK에서 OAuth 클라이언트는 클라이언트가 연결한 MCP 서버가 클라이언트의 OAuth 자격 증명을 받을 권한 부여 서버를 결정하도록 허용했습니다. 저장/사전 프로비저닝된 자격 증명은 해당 권한 부여 서버에 바인딩되지 않았습니다(CWE-345/CWE-522). 악성 또는 손상된 MCP 서버는 보호 리소스 메타데이터에서 자체 권한 부여 서버를 지정할 수 있으며, 사용자 상호 작용 없이 피해자의 저장된 `refresh_token` 및 `client_secret`(1.x) 또는 번들된 비대화형 프로바이더의 구성된 `client_secret`/서명된 어설션(1.x 및 2.x)을 받을 수 있습니다. SDK 1.31.0 및 @modelcontextprotocol/client 2.2.0에서 수정되었습니다.
이것은 Model Context Protocol의 참조 SDK입니다 — 에이전트 AI의 연결 조직입니다. 자동화 가능(UI 없음, 사용자 확인 없음)하기 때문에 합법적인 프로바이더의 OAuth 자격 증명을 보유한 상태에서 신뢰할 수 없거나 손상된 MCP 서버에 연결하는 모든 에이전트는 조용히 장기 토큰을 넘겨주어 에이전트 스택 전반에 걸친 계정/API 탈취를 가능하게 합니다. 신뢰할 수 있는 발급자 바인딩 격차는 에코시스템의 핵심 클라이언트 라이브러리에 있는 구조적 OAuth 통합 결함입니다.
에이전트가 공격자 제어/손상된 MCP 서버에 연결합니다. 서버는 리소스 메타데이터에서 자체 권한 부여 서버를 광고합니다. SDK는 다음 토큰 새로 고침 시 저장된 refresh_token + client_secret을 해당 엔드포인트로 보냅니다.
@modelcontextprotocol/sdk >= 1.12.0, < 1.31.0 (1.x); @modelcontextprotocol/client >= 2.0.0, < 2.2.0 (2.x)
@modelcontextprotocol/sdk 1.31.0 또는 @modelcontextprotocol/client 2.2.0으로 업그레이드합니다. 1.x에서는 OAuth 지원 클라이언트를 신뢰할 수 있는 MCP 서버에만 연결합니다(해결 방법).
NVD CVE-2026-104850GitHub advisory GHSA-6qxp-vccf-f47hGitLab advisory CVE-2026-104850MCP SDK fix commit
라이브 피드에서 보기 AI 보안 및 거버넌스 관련 소식을 더 살펴보세요 — 매일 아침 업데이트.
피드 열기 →