🇰🇷 한글 설명
MCP TypeScript SDK의 OAuth 클라이언트 지원 기능에서 인증 서버를 검증하지 않는 취약점이 발견되었습니다. 공격자가 조작된 MCP 서버를 통해 클라이언트의 refresh_token이나 client_secret과 같은 민감한 인증 정보를 탈취할 수 있습니다. 이 문제는 1.x 버전의 1.31.0 미만 및 2.x 버전의 2.2.0 미만 버전에서 발생합니다.
💡 쉬운 설명
믿을 수 없는 서버에 연결했을 때, 내 소중한 로그인 정보가 공격자의 서버로 자동으로 전송될 수 있는 보안 결함입니다. 사용자가 모르는 사이에 인증 키가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. Starting in version 1.12.0 and prior to versions 1.31.0 and 2.2.0, the SDK's OAuth client support let the MCP server a client connected to decide which authorization server received the client's OAuth credentials. Stored and pre-provisioned credentials were not bound to the authorization server they belong to. A malicious or compromised MCP server could name its own authorization server in its protected resource metadata. Without any user interaction, the client would send that server the `refresh_token` and `client_secret` stored from an earlier sign-in (1.x), or the configured `client_secret` or signed assertion of a bundled non-interactive provider (1.x and 2.x). Only those applications that use the SDK as an MCP client over HTTP with an `authProvider`: your own `OAuthClientProvider`, or the bundled `ClientCredentialsProvider`, `PrivateKeyJwtProvider`, `StaticPrivateKeyJwtProvider` or (2.x) `CrossAppAccessProvider` and that may connect to an MCP server the owners does not fully trust while holding credentials for a legitimate authorization server are affected. `@modelcontextprotocol/sdk` 1.31.0 (1.x) and `@modelcontextprotocol/client` 2.2.0 (2.x) patch the issue. A workaround for those who cannot upgrade is available. 2.0.0 and 2.1.0 already accept `expectedIssuer`. On 1.x, the only workaround is to connect OAuth-enabled clients only to MCP servers you trust.
📍 영향받는 시스템
@modelcontextprotocol/sdk 1.x (1.31.0 미만) 및 @modelcontextprotocol/client 2.x (2.2.0 미만)
⚔️ 공격 벡터
악의적인 MCP 서버가 자신의 인증 서버를 메타데이터에 등록하여 클라이언트의 인증 정보를 가로챔
🛡️ 대응 방법
SDK를 @modelcontextprotocol/sdk 1.31.0 또는 @modelcontextprotocol/client 2.2.0 이상 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 패키지 버전이 취약한 범위(1.31.0 미만 또는 2.2.0 미만)에 해당하는지 확인하십시오.
npm list @modelcontextprotocol/sdk @modelcontextprotocol/client
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server