MCP TypeScript SDK: Pojedyncze żądanie HTTP w domyślnym limicie rozmiaru mogło wyczerpać pamięć serwera podczas walidacji
Podsumowanie
W wersjach dotkniętych podatnością serwery nie nakładały limitu na liczbę elementów tablicy i kluczy obiektów walidowanych w ramach jednego żądania. Pojedyncze żądanie HTTP mieszczące się w domyślnym limicie rozmiaru 4 MiB mogło wyczerpać pamięć serwera, powodując zakończenie procesu błędem JavaScript heap out of memory.
Nie są wymagane żadne poświadczenia, chyba że żądania są uwierzytelniane przed dotarciem do SDK.
Czy dotyczy to mojego środowiska?
Tak, jeśli klienci, do których nie masz pełnego zaufania, mogą łączyć się z Twoim serwerem przez HTTP. Ryzyko jest najwyższe w przypadku narzędzi McpServer, których dane wejściowe zawierają tablicę lub rekord. Serwery korzystające wyłącznie ze stdio nie są podatne.
Wersje dotknięte podatnością:
@modelcontextprotocol/sdk1.3.0 do 1.31.0@modelcontextprotocol/server2.0.0 do 2.2.0
Co trzeba zrobić
Rozwiązanie
Zaktualizuj do:
- 1.x:
@modelcontextprotocol/sdk1.32.0 lub nowszej - 2.x:
@modelcontextprotocol/server2.3.0 lub nowszej
Sama aktualizacja niczego nie zmienia. Załatane wersje wprowadzają opcję McpServer, maxToolInputElements, która jest domyślnie wyłączona. Wprowadź obie poniższe zmiany:
- Ustaw
maxToolInputElementstuż powyżej największych danych wejściowych wymaganych przez Twoje narzędzia, na przykładnew McpServer(info, { maxToolInputElements: 10_000 }). Zlicza ona elementy tablic oraz klucze obiektów w argumentach wywołania. Wywołanie przekraczające limit otrzymuje wynikisError: true. - Zmniejsz limit rozmiaru żądania do poziomu wymaganego przez Twoje narzędzia. Opcja ta dotyczy wyłącznie argumentów narzędzi, a limit rozmiaru obejmuje całą resztę. Ustaw
maxRequestBodySizena transporcie lubcreateMcpHandler(). Jeśli samodzielnie przetwarzasz treść żądania (body), na przykład za pomocąexpress.json()lub Fastify, skonfiguruj limit tego parsera.
Jeśli nie możesz jeszcze dokonać aktualizacji, wdróż drugą zmianę. maxRequestBodySize wymaga @modelcontextprotocol/sdk 1.30.1 lub @modelcontextprotocol/server 2.1.0. W przypadku starszych wersji użyj reverse proxy.
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka npm | @modelcontextprotocol/sdk | >= 1.3.0, < 1.32.0 | 1.32.0 |
| Paczka npm | @modelcontextprotocol/server | >= 2.0.0, < 2.3.0 | 2.3.0 |
Odnośniki
- https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-46jr-4wx8-v453
- https://github.com/modelcontextprotocol/typescript-sdk/pull/2926
- https://github.com/modelcontextprotocol/typescript-sdk/pull/2927
- https://github.com/modelcontextprotocol/typescript-sdk/commit/6d8dbc6cb590edf766fcb66b636ca6b654e99c37
- https://github.com/modelcontextprotocol/typescript-sdk/commit/fd26801b3b387742fe24a90ed4b275dd6072209f
- https://github.com/modelcontextprotocol/typescript-sdk
- Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H- Słabość (CWE)
CWE-770- Platforma
- npm
- Paczka
@modelcontextprotocol/sdk, @modelcontextprotocol/server- Ujawniono
- 20.10.2026
- Aktualizacja
- 20.10.2026 23:21
Źródła i licencje · Redakcja lub tłumaczenie: DockRay. Zachowano prawa źródeł i obowiązujące licencje.
OSV / GitHub Advisory Database - GHSA-46jr-4wx8-v453 - CC BY 4.0
Historia podatności: @modelcontextprotocol/sdk
Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
- Wszystkich wpisów
- 8
- Pierwsza → ostatnia
- 12.2025 10.2026
- Bez poprawki
- 0
- Wykorzystywana w atakach
- 0
Rozkład istotności
- Wysoka 6
- Średnia 2
Ujawnienia w latach
- 2025: 1
- 2026: 7
-
MCP TypeScript SDK: Pojedyncze żądanie HTTP w domyślnym limicie rozmiaru mogło wyczerpać pamięć serwera podczas walidacji ten wpis
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.