CVE-2026-63127
HighCVSS 8.2Summary
RMCP prior to 2.0.0, the rmcp crate's OAuth implementation omits the RFC 9728 resource field from ResourceServerMetadata and allows discover_oauth_server_via_resource_metadata to use protected-resource metadata without confirming that the returned resource identifier exactly matches the configured MCP server. A malicious MCP server can publish metadata for a different legitimate MCP resource and its authorization server, causing a victim who connects and completes the authorization flow to obtain a legitimate access token that the client subsequently sends to the malicious server.
Risk Assessment
The attacker can capture the token and impersonate the victim against the legitimate MCP resource within the token's granted scopes, compromising confidentiality and integrity.
Recommendation
Update rmcp to version 2.0.0 or later.
Other vulnerabilities in rmcp
See all- CVE-2026-64684Medium
Prior to version 2.1.0, the StreamableHttpClientTransport in the rmcp crate uses reqwest's automatic redirect policy and applies custom headers without marking them as sensitive. When a malicious or compromised MCP endpoint returns a cross-origin 307 or 308 redirect, reqwest follows it and replays custom API keys or authentication tokens to the new origin, where an attacker can capture them.
- CVE-2026-63128High
RMCP prior to 2.0.0, the rmcp crate's stateful Streamable HTTP server allows an unauthenticated client to send a well-formed JSON-RPC POST that is not an initialization request, or an initialization request with a mismatched protocol header, causing StreamableHttpService::handle_post to call LocalSessionManager.create_session before validating the message. An early validation failure returns without removing the inserted LocalSessionHandle from LocalSessionManager.sessions, permanently retaining session and channel state for the server process lifetime.
Original NVD description (English source)
RMCP is an official Rust SDK for the Model Context Protocol. Prior to 2.0.0, the rmcp crate's OAuth implementation in crates/rmcp/src/transport/auth.rs omits the RFC 9728 resource field from ResourceServerMetadata and allows discover_oauth_server_via_resource_metadata to use protected-resource metadata without confirming that the returned resource identifier exactly matches the configured MCP server. A malicious MCP server can publish metadata for a different legitimate MCP resource and its authorization server, causing a victim who connects and completes the authorization flow to obtain a legitimate access token that the client subsequently sends to the malicious server. The attacker can capture the token and impersonate the victim against the legitimate MCP resource within the token's granted scopes. This issue is fixed in version 2.0.0.

