CVE-2026-63128
WysokieCVSS 7.5Streszczenie
RMCP przed wersją 2.0.0 w stateful Streamable HTTP server pozwala nieuwierzytelnionemu klientowi wysłać poprawne JSON-RPC POST, które nie jest żądaniem inicjalizacji, lub żądanie inicjalizacji z niezgodnym nagłówkiem protokołu, powodując wywołanie LocalSessionManager.create_session przed walidacją wiadomości. Błąd walidacji zwraca wynik bez usunięcia LocalSessionHandle z sesji, trwale zatrzymując stan sesji i kanału przez cały czas życia procesu serwera.
Ocena ryzyka
Powtarzane żądania mogą nieograniczenie rosnąć tabelę sesji, degradować opóźnienia legalnych klientów, wyczerpać pamięć i zakończyć działanie serwera, powodując odmowę usługi.
Rekomendacja
Zaktualizuj rmcp do wersji 2.0.0 lub nowszej.
Inne podatności w rmcp
Zobacz wszystkie- CVE-2026-64684Średnie
Przed wersją 2.1.0, klient StreamableHttpClientTransport w crate'cie rmcp używa polityki automatycznego przekierowania reqwest i stosuje niestandardowe nagłówki bez oznaczenia ich jako wrażliwe. Gdy złośliwy lub skompromitowany punkt końcowy MCP zwraca przekierowanie 307 lub 308 z innego origin, reqwest podąża za nim i odtwarza klucze API lub tokeny uwierzytelniające na nowym origin, gdzie atakujący może je przechwycić.
- CVE-2026-63127Wysokie
RMCP przed wersją 2.0.0 w implementacji OAuth pomija pole resource z RFC 9728 w ResourceServerMetadata i pozwala discover_oauth_server_via_resource_metadata używać metadanych chronionego zasobu bez potwierdzenia, że zwrócony identyfikator zasobu dokładnie odpowiada skonfigurowanemu serwerowi MCP. Złośliwy serwer MCP może opublikować metadane dla innego legalnego zasobu MCP i jego serwera autoryzacji, powodując, że ofiara uzyskuje legalny token dostępu, który następnie wysyła do złośliwego serwera.
Oryginalny opis (angielski, źródło NVD)
RMCP is an official Rust SDK for the Model Context Protocol. Prior to 2.0.0, the rmcp crate's stateful Streamable HTTP server in crates/rmcp/src/transport/streamable_http_server/tower.rs 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. Repeated requests can grow the shared session table without bound, degrade legitimate-client latency through lock contention, exhaust memory, and terminate the server. This issue is fixed in version 2.0.0.

