HIGH🇬🇧 English

CVE-2026-52869

MCP Python SDK: brak weryfikacji właściciela sesji w transportach SSE i HTTP

CVSS 7.1v3.1pub. 2026-07-15upd. 2026-07-17

W bibliotece MCP Python SDK (pakiet `mcp` na PyPI) w wersjach przed 1.27.2 transporty SSE i Streamable HTTP nie weryfikują, czy żądanie pochodzi od uwierzytelnionego klienta, który utworzył daną sesję. Pozwala to innemu uwierzytelnionemu klientowi, który zna identyfikator sesji, na wstrzyknięcie wiadomości JSON-RPC do cudzej sesji.

Pokaż oryginał (EN)

The MCP Python SDK, called mcp on PyPI, is a Python implementation of the Model Context Protocol (MCP). Prior to 1.27.2, the SSE and stateful Streamable HTTP transports mcp.server.sse.SseServerTransport and mcp.server.streamable_http_manager.StreamableHTTPSessionManager route requests to existing sessions using only the session_id query parameter or Mcp-Session-Id header without verifying the authenticated principal that created the session, allowing a different bearer-token-authenticated client with a known session ID to inject JSON-RPC messages into that session. This issue is fixed in version 1.27.2.

🤖 Analiza AI
Jak działa

Mechanizm routingu żądań w komponentach `mcp.server.sse.SseServerTransport` oraz `mcp.server.streamable_http_manager.StreamableHTTPSessionManager` identyfikuje sesję wyłącznie na podstawie parametru `session_id` w zapytaniu URL lub nagłówka `Mcp-Session-Id`. Brakuje dodatkowej walidacji potwierdzającej, że uwierzytelniony principal (bearer token) wysyłający żądanie jest tym samym, który oryginalnie utworzył sesję. Atakujący posiadający własny ważny token uwierzytelniający oraz znany identyfikator sesji innego użytkownika może wstrzyknąć dowolne wiadomości JSON-RPC do tej sesji. Jest to podatność typu Insecure Direct Object Reference (CWE-639), gdzie identyfikator sesji pełni rolę niezabezpieczonego klucza dostępu.

Skutki

Atakujący może wstrzyknąć arbitralne wiadomości JSON-RPC do sesji należącej do innego użytkownika, co może prowadzić do nieuprawnionego dostępu do poufnych danych tej sesji oraz manipulacji jej stanem lub wykonywaną logiką.

Mitygacja

Należy zaktualizować pakiet `mcp` do wersji 1.27.2 lub nowszej, w której wprowadzono weryfikację uwierzytelnionego principala przy routingu żądań do istniejących sesji. Patche dostępne są w referencjach producenta (GitHub releases v1.27.2).

Kogo dotyczy

MCP Python SDK (pakiet `mcp` na PyPI) w wersjach wcześniejszych niż 1.27.2, gdy używane są transporty SSE (`mcp.server.sse.SseServerTransport`) lub stateful Streamable HTTP (`mcp.server.streamable_http_manager.StreamableHTTPSessionManager`)

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:L
  • Lfprojects Mcp Python Sdk

    APP
    Lfprojects
    < 1.27.2
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2026-52870HIGH7.6PL ✓ten sam produkt

MCP Python SDK: brak kontroli dostępu do zadań między sesjami klientów

CVE-2026-59950HIGH7.6PL ✓ten sam produkt

Brak walidacji nagłówków Origin/Host w MCP Python SDK (WebSocket)

CVE-2025-66416HIGH7.6ten sam produkt

The MCP Python SDK, called `mcp` on PyPI, is a Python implementation of the Model Context Protocol (MCP). Prio...

CVE-2026-64849CRITICAL9.3⚠ KEVten sam vendor

MLflow is an open source AI engineering platform for agents, large language models, and machine learning model...

CVE-2026-2651CRITICAL9.0PL ✓ten sam vendor

MLflow: nieautoryzowany dostęp do endpointów multipart upload (RCE)