Wysoka

MCP TypeScript server SDK: Współdzielone instancje transportu lub serwera przekazywały wiadomości jednego klienta HTTP do innego

  • Ujawniono: 20.10.2026
  • Aktualizacja: 20.10.2026 23:19

Podsumowanie

W wersjach dotkniętych podatnością serwer MCP obsługiwany przez HTTP mógł przekazywać odpowiedzi i powiadomienia jednego klienta innemu klientowi. Działo się tak, gdy klienci współdzielili jeden bezstanowy transport lub pojedynczą instancję McpServer bądź Server.

Komunikaty były dopasowywane do połączenia wyłącznie na podstawie id JSON-RPC. Klienci SDK numerują żądania od 0, przez co identyfikatory kolidują ze sobą podczas standardowego użytkowania.

Czy problem mnie dotyczy?

Tak, jeśli więcej niż jeden klient ma dostęp do punktu końcowego HTTP, a kod tworzy transport lub serwer jednokrotnie podczas uruchomienia, zamiast dla każdego żądania lub dla każdej sesji. Do czasu tego wydania przykłady w dokumentacji README dla @modelcontextprotocol/hono, express, fastify oraz node przedstawiały ten wzorzec.

Wersje dotknięte podatnością: od @modelcontextprotocol/server 2.0.0 do 2.2.0.

Wersje niezagrożone:

  • createMcpHandler() z fabryką tworzącą nowy serwer przy każdym wywołaniu
  • serwery stdio
  • @modelcontextprotocol/sdk 1.26.0 i nowsze

Co trzeba zrobić

Zaktualizuj do wersji @modelcontextprotocol/server 2.3.0 lub nowszej.

Wymagana jest również zmiana w kodzie aplikacji. Pakiet SDK uniemożliwia obecnie współdzielenie instancji, dlatego aplikacja objęta problemem po aktualizacji odrzuci kolejne żądania: drugie wywołanie connect() zostanie odrzucone z błędem ALREADY_CONNECTED, a bezstanowy transport odrzuci swoje drugie żądanie.

Zastosuj jedno z poniższych rozwiązań:

  • createMcpHandler(): przekaż fabrykę, która tworzy nowe McpServer przy każdym wywołaniu.
  • Dla każdego żądania: twórz nowe McpServer oraz nowy transport wewnątrz procedury obsługi żądania.
  • Dla każdej sesji: ustaw sessionIdGenerator i utrzymuj jedno McpServer oraz jeden transport na sesję.

Jeśli nie możesz jeszcze dokonać aktualizacji, wdrożenie powyższych zmian w kodzie eliminuje problem również w wersjach podatnych.

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka npm @modelcontextprotocol/server >= 2.0.0, < 2.3.0 2.3.0

Odnośniki

Ocena CVSS 7.7/10
Wektor CVSS
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:H
Słabość (CWE)
CWE-362
Platforma
npm
Paczka
@modelcontextprotocol/server
Ujawniono
20.10.2026
Aktualizacja
20.10.2026 23:19

Źródła i licencje · Redakcja lub tłumaczenie: DockRay. Zachowano prawa źródeł i obowiązujące licencje.

OSV / GitHub Advisory Database - GHSA-jm63-cq47-j5jp - CC BY 4.0

Historia podatności: @modelcontextprotocol/server

Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkich wpisów
3
Pierwsza → ostatnia
10.2026 10.2026
Bez poprawki
0
Wykorzystywana w atakach
0

Rozkład istotności

  • Wysoka 2
  • Średnia 1

Ujawnienia w latach

  1. 2026: 3
  1. MCP TypeScript server SDK: Współdzielone instancje transportu lub serwera przekazywały wiadomości jednego klienta HTTP do innego ten wpis
    Wysoka · 7.7 CVE-2026-111770 >= 2.0.0, < 2.3.0 2.3.0

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.