기술 설명
Model Context Protocol의 공식 Rust SDK인 rmcp crate 버전 1.4.0 이전에서는 Streamable HTTP 서버 전송(crates/rmcp/src/transport/streamable_http_server/)에서 들어오는 Host 헤더를 검증하지 않았습니다. 이로 인해 악의적인 공개 웹사이트가 localhost에 바인딩된 MCP 서버를 대상으로 DNS rebinding 공격을 실행할 수 있었으며, 신뢰할 수 있는 로컬 클라이언트에서 온 것처럼 교차 출처 요청을 서버가 처리하도록 할 수 있었습니다. NVD는 2026년 5월 14일에 CVE-2026-42559를 CVSS 4.0 기본 점수 8.8(높음 심각도)로 발표했습니다.
공격 경로
DNS rebinding 공격입니다. 공격자가 악의적인 웹사이트를 호스팅하고 사용자가 브라우저에서 방문합니다. 공격자의 JavaScript 코드는 DNS rebinding을 수행하여 사용자의 브라우저가 MCP 서버가 수신 대기 중인 127.0.0.1 또는 localhost 주소로 HTTP 요청을 전송하도록 합니다. rmcp crate가 Host 헤더를 검증하지 않았기 때문에 MCP 서버는 이러한 교차 출처 요청을 수락하고 처리하므로 공격자가 합법적인 로컬 MCP 클라이언트에서 온 것처럼 MCP 도구를 호출하고, 리소스에 액세스하거나, 프롬프트를 조작할 수 있습니다.
영향받는 시스템
rmcp crate(공식 Model Context Protocol Rust SDK) 버전 1.4.0 이전을 사용하는 Rust 기반 MCP 서버 구현입니다. localhost에서 수신 대기하고 rmcp Streamable HTTP 전송을 사용하는 모든 MCP 서버에 영향을 미칩니다. rmcp crate를 사용하여 MCP 서버를 구축하는 개발자는 이전 배포가 악의적인 웹사이트의 교차 출처 공격에 취약했다고 가정해야 합니다.
완화 방안
rmcp crate 버전 1.4.0 이상으로 업그레이드하십시오. 이 버전은 DNS rebinding 공격을 방지하기 위한 Host 헤더 검증을 도입합니다. MCP 서버가 localhost를 넘어선 네트워크 인터페이스에 실수로 노출되지 않도록 서버 구성을 검토하십시오. 프로덕션에서 MCP 서버를 배포하는 조직은 의심스러운 교차 출처 요청에 대한 액세스 로그를 감사하고 Host 헤더 검사를 넘어선 클라이언트 인증 메커니즘이 적용되는지 확인해야 합니다.