🇰🇷 한글 설명
MCP TypeScript SDK 1.24.0 미만 버전에서 HTTP 기반 서버 사용 시 DNS Rebinding 보호 기능이 기본적으로 활성화되지 않습니다. 인증 없이 로컬에서 실행되는 HTTP 기반 MCP 서버는 악성 웹사이트를 통한 DNS Rebinding 공격에 노출되어, 공격자가 사용자를 대신해 도구를 호출하거나 리소스에 접근할 수 있습니다.
💡 쉬운 설명
인터넷을 사용하는 악성 사이트가 사용자의 컴퓨터 내부에서 돌아가는 프로그램에 몰래 명령을 내릴 수 있는 보안 취약점입니다. 이를 통해 공격자가 사용자의 허락 없이 로컬 서버의 데이터에 접근하거나 기능을 실행할 수 있습니다.
🇺🇸 원문 (English)
MCP TypeScript SDK is the official TypeScript SDK for Model Context Protocol servers and clients. Prior to 1.24.0, The Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default for HTTP-based servers. When an HTTP-based MCP server is run on localhost without authentication with StreamableHTTPServerTransport or SSEServerTransport and has not enabled enableDnsRebindingProtection, a malicious website could exploit DNS rebinding to bypass same-origin policy restrictions and send requests to the local MCP server. This could allow an attacker to invoke tools or access resources exposed by the MCP server on behalf of the user in those limited circumstances. Note that running HTTP-based MCP servers locally without authentication is not recommended per MCP security best practices. This issue does not affect servers using stdio transport. This vulnerability is fixed in 1.24.0.
📍 영향받는 시스템
MCP TypeScript SDK 1.24.0 미만 버전 (StreamableHTTPServerTransport 또는 SSEServerTransport 사용 시)
⚔️ 공격 벡터
DNS Rebinding을 이용해 동일 출처 정책(SOP)을 우회하여 로컬 HTTP MCP 서버에 요청 전송
🛡️ 대응 방법
MCP TypeScript SDK를 1.24.0 이상 버전으로 업데이트하거나, enableDnsRebindingProtection 설정을 활성화함
🔧 검증 코드
출력된 패키지 버전이 1.24.0 미만인지 확인하여 취약 여부를 판단합니다.
npm list @modelcontextprotocol/sdk