Średnia

MCP TypeScript client SDK: transporty HTTP i żądania OAuth podążały za przekierowaniami cross-origin

  • Ujawniono: 20.10.2026
  • Aktualizacja: 20.10.2026 21:37

Podsumowanie

W wersjach dotkniętych problemem mechanizmy transportowe klienta HTTP oraz żądania OAuth w SDK podążały za przekierowaniami do dowolnego źródła (origin).

Jeśli serwer MCP lub serwer autoryzacyjny przekierował żądanie do innego źródła, źródło to otrzymywało niestandardowe nagłówki żądania (takie jak X-API-Key ustawiony w requestInit.headers) oraz nagłówek mcp-session-id. W przypadku kodów 307 lub 308 przesyłana była również treść żądania, w tym żądania tokenów OAuth wraz z ich refresh_token oraz client_secret.

W nowoczesnych środowiskach uruchomieniowych fetch domyślnie odrzuca już nagłówek Authorization pomiędzy różnymi źródłami.

Czy problem mnie dotyczy?

Tak, jeśli aplikacja korzysta z StreamableHTTPClientTransport, SSEClientTransport lub funkcji klienta OAuth z SDK, takich jak auth(). Klienci korzystający ze stdio nie są dotknięci tą podatnością.

Podatne wersje:

  • Wszystkie wersje @modelcontextprotocol/sdk do 1.31.0 włącznie
  • @modelcontextprotocol/client od wersji 2.0.0 do 2.2.0

Co trzeba zrobić

Zaktualizuj do:

  • 1.x: @modelcontextprotocol/sdk 1.32.0 lub nowszej
  • 2.x: @modelcontextprotocol/client 2.3.0 lub nowszej

Przekierowania są teraz obsługiwane wyłącznie w ramach tego samego źródła (same-origin), a w przeglądarkach nie są realizowane wcale. Jeśli serwer MCP lub serwer autoryzacyjny celowo przekierowuje do innego źródła, należy skonfigurować docelowy adres URL. Ustawienie właściwości redirectPolicy: 'follow' w konfiguracji transportu przywraca dawne zachowanie oraz wiążące się z nim ryzyko.

Jeśli przekierowanie mogło dotrzeć do hosta, nad którym nie sprawujesz kontroli, zmień klucze API i client_secret przechowywane przez aplikację oraz unieważnij jej tokeny.

Jeśli aktualizacja nie jest jeszcze możliwa, przekaż parametr fetch odrzucający przekierowania, na przykład (url, init) => fetch(url, { ...init, redirect: 'error' }).

Czego dotyczy

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

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka npm @modelcontextprotocol/client >= 2.0.0, < 2.3.0 2.3.0
Paczka npm @modelcontextprotocol/sdk < 1.32.0 1.32.0

Odnośniki

Ocena CVSS 6.5/10
Wektor CVSS
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N
Słabość (CWE)
CWE-200
Platforma
npm
Paczka
@modelcontextprotocol/client, @modelcontextprotocol/sdk
Ujawniono
20.10.2026
Aktualizacja
20.10.2026 21:37

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

OSV / GitHub Advisory Database - GHSA-6prh-2h8m-c8cw - CC BY 4.0

Historia podatności: @modelcontextprotocol/client

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

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

Rozkład istotności

  • Wysoka 1
  • Średnia 1

Ujawnienia w latach

  1. 2026: 2
  1. MCP TypeScript client SDK: transporty HTTP i żądania OAuth podążały za przekierowaniami cross-origin ten wpis
    Średnia · 6.5 CVE-2026-111769 >= 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.