Denva / Články / MCP SDK zraniteľnosť: sedem opráv z októbra 2026 a čo zmeniť v kóde vlastného MCP servera
Automatizácie a AI

MCP SDK zraniteľnosť: sedem opráv z októbra 2026 a čo zmeniť v kóde vlastného MCP servera

· 11 min čítania
MCP SDK zraniteľnosť: sedem opráv z októbra 2026 a čo zmeniť v kóde vlastného MCP servera

Od 30. septembra do 15. októbra 2026 zverejnili správcovia oficiálneho MCP SDK pre TypeScript sedem bezpečnostných upozornení, päť z nich s vysokou závažnosťou, a pri štyroch samotná aktualizácia balíka nemusí stačiť. Ak firma prevádzkuje vlastný MCP server dostupný cez HTTP, cez ktorý AI asistent siaha na interné dáta, týka sa jej aj MCP SDK zraniteľnosť, pri ktorej server mohol doručiť odpoveď jedného klienta inému. Oprava vo verzii 2.3.0 balíka @modelcontextprotocol/server vyžaduje aj zmenu kódu. Lokálnych serverov cez stdio sa serverové chyby netýkajú.

Širší rámec toho, čo sa vo firme oplatí automatizovať, nájdete v našom sprievodcovi AI automatizáciou firemných procesov. Webhooky, prístupy a API kľúče v automatizačných tokoch rozoberá článok o bezpečnosti automatizácií. Tu riešime jednu konkrétnu knižnicu a to, čo s ňou urobiť ešte tento týždeň. Ak chcete MCP server alebo integráciu s AI nechať skontrolovať niekým, kto ich stavia, pozrite si našu službu automatizácie firemných procesov.

Koho sa MCP SDK zraniteľnosť týka a koho nie

Zasiahnutý je projekt, ktorý používa MCP SDK pre TypeScript a jeho server alebo klient komunikuje cez HTTP; servery spúšťané len lokálne cez stdio sa serverových chýb netýkajú.

MCP (Model Context Protocol) je protokol, cez ktorý sa AI aplikácia pripája k nástrojom a dátam. Server ponúka nástroje, napríklad vyhľadanie objednávky, a klient je aplikácia s AI modelom, ktorá ich volá. Špecifikácia MCP vo verzii 2026-07-28 pozná dva štandardné spôsoby prenosu. Pri stdio spúšťa server priamo klientska aplikácia ako podproces na tom istom počítači. Pri Streamable HTTP beží server ako samostatná služba s jednou adresou a každú správu prijíma ako HTTP požiadavku, takže sa k nemu môže pripojiť viac klientov.

Pre firmu z toho vyplývajú tri situácie:

  • vlastný MCP server dostupný cez HTTP, napríklad nasadený na serveri alebo v cloude, aby k interným dátam mohlo pristupovať viac ľudí: týkajú sa ho chyby so zdieľanou inštanciou, overovaním tokenov a veľkosťou požiadaviek,
  • vlastná aplikácia alebo skript, ktorý sa cez SDK pripája k MCP serverom cez HTTP a prihlasuje sa cez OAuth alebo API kľúč: týkajú sa ho dve chyby klienta, pri ktorých mohli prihlasovacie údaje odísť na cudziu adresu,
  • server spúšťaný len lokálne cez stdio, napríklad z desktopovej AI aplikácie: serverové chyby sa ho netýkajú a aktualizáciu môžete spraviť pri bežnej údržbe.

Verziu zistíte v súbore package.json alebo príkazom npm ls v priečinku projektu. Vetva 1.x je jeden balík @modelcontextprotocol/sdk. Vetva 2.x je rozdelená na samostatné balíky @modelcontextprotocol/server, @modelcontextprotocol/client a adaptéry pre Express, Node a Hono. Keď vo výpise nenájdete žiadny balík @modelcontextprotocol, tieto upozornenia sa vášho projektu netýkajú. Keď ho nájdete, pokračujte tabuľkou nižšie.

Vľavo jedno zariadenie prepojené s jedným procesom vo vnútri uzavretého rámu, vpravo otvorený uzol s oranžovou značkou, ku ktorému vedú čiary z mnohých zariadení
Lokálny server cez stdio počúva len jednu aplikáciu, server cez HTTP prijíma požiadavky od viacerých klientov.

MCP server, ktorý má svojho správcu

Ak neviete, na akej verzii váš MCP server beží a kto ho aktualizuje, pozrite si, ako integrácie s AI navrhujeme, staviame a odovzdávame zdokumentované.

Sedem upozornení MCP SDK v jednej tabuľke

Päť upozornení sa týka servera a dve klienta; všetky chyby vo vetve 1.x opravuje verzia 1.32.0 balíka @modelcontextprotocol/sdk.

Všetkých sedem upozornení je zverejnených v časti bezpečnostných upozornení repozitára MCP TypeScript SDK na GitHube. Každé obsahuje dotknuté verzie, opravené verzie a to, či treba okrem aktualizácie zmeniť aj kód.

Čo sa mohlo staťStranaZávažnosť (CVSS)Opravená verziaStačí aktualizácia?
Zdieľaná inštancia servera doručila odpoveď jedného klienta inémuserver 2.xvysoká, 7,7server 2.3.0nie, treba zmeniť kód
Server prijal token vydaný pre inú službuserverstredná, 6,8sdk 1.32.0, server 2.3.0, express 2.0.2nie, treba zapnúť kontrolu audience
Jedna požiadavka v limite 4 MiB vyčerpala pamäť serveraservervysoká, 7,5sdk 1.32.0, server 2.3.0nie, treba nastaviť limity
Chýbal limit veľkosti požiadavky a dĺžky dávkyservervysoká, 7,5sdk 1.30.1, server a node 2.1.0, hono 2.0.1áno
Experimentálne úlohy neboli viazané na session, ktorá ich vytvorilaserver 1.xvysoká, 8,6sdk 1.32.0áno, prípadne odstrániť taskStore
OAuth klient poslal prihlasovacie údaje autorizačnému serveru, ktorý vybral MCP serverklientvysoká, 7,5sdk 1.31.0, client 2.2.0nie vždy, záleží na nastavení a uložených tokenoch
Klient pri presmerovaní na inú doménu znova poslal hlavičky a telo požiadavkyklientstredná, 6,5sdk 1.32.0, client 2.3.0áno, pri podozrení vymeniť kľúče
Stav k októbru 2026, podľa bezpečnostných upozornení v repozitári modelcontextprotocol/typescript-sdk na GitHube.

K 22. októbru 2026 sú na npm najnovšie verzie 1.32.1 pre @modelcontextprotocol/sdk a 2.3.1 pre server aj client. Žiadne zo siedmich upozornení neuvádza, že by chybu niekto zneužil. Pri dvoch chybách s pamäťou servera však podľa upozornení útočník nepotrebuje prihlasovacie údaje, ak server neoveruje požiadavky skôr, než sa dostanú k SDK. Kým aktualizáciu odkladáte, server môže spadnúť po jedinej požiadavke od kohokoľvek, kto sa k jeho adrese dostane.

Kde aktualizácia nestačí: štyri zmeny v kóde

Pri zdieľanej inštancii servera, overovaní tokenov, limite vstupov a OAuth klientovi musí vývojár po aktualizácii upraviť aj kód alebo nastavenie.

Jeden server pre všetkých klientov

Upozornenie GHSA-jm63-cq47-j5jp opisuje kód, ktorý vytvorí transport alebo server raz pri štarte aplikácie a všetky HTTP požiadavky posiela cez neho. SDK priraďovalo správy k spojeniu len podľa JSON-RPC id. Klienti SDK číslujú požiadavky od nuly, takže sa tieto id pri bežnej prevádzke zhodujú a odpoveď s údajmi jedného používateľa mohla odísť inému. Presne tento vzor do vydania opravy ukazovali príklady v README adaptérov pre Hono, Express, Fastify a Node. Server, ktorý podľa nich napísal človek alebo AI nástroj, preto skontrolujte ako prvý.

Verzia 2.3.0 zdieľanie odmietne: druhé pripojenie skončí chybou ALREADY_CONNECTED a bezstavový transport odmietne druhú požiadavku. Takýto server po samotnej aktualizácii prestane odpovedať. Kód treba upraviť tak, aby vytváral nový server pre každú požiadavku, alebo jeden server a jeden transport pre každú session. Vetva 1.x má rovnaký typ chyby opravený od verzie 1.26.0 zo 4. februára 2026.

Čierny server posiela obálky dvom kockám pod sebou a oranžová obálka sa po prekrížených cestách uberá k nesprávnej kocke
Pri zdieľanej inštancii servera mohla odpoveď určená jednému klientovi skončiť u druhého.

Token vydaný pre inú službu

Keď jeden autorizačný server vydáva tokeny pre viac služieb, MCP server s funkciou requireBearerAuth() alebo verifyBearerToken() prijal aj platný token určený inej službe. Časť špecifikácie o bezpečnostných postupoch v MCP pritom hovorí, že server nesmie prijať token, ktorý nebol vydaný preň. Opravené verzie pridávajú nastavenie expectedResource, ktoré je predvolene vypnuté. Treba ho zapnúť a zároveň vracať audience tokenu z verifyAccessToken(). Ak urobíte len prvú zmenu, server odmietne každú požiadavku s kódom 401. Na starších verziách problém uzavrie verifyAccessToken(), ktorý sám odmietne token, ak jeho aud váš server neobsahuje.

Limit na veľkosť vstupu

Jedna požiadavka v predvolenom limite 4 MiB mohla pri overovaní vstupu vyčerpať pamäť a proces skončil chybou JavaScript heap out of memory. Riziko je podľa upozornenia GHSA-46jr-4wx8-v453 najvyššie pri nástrojoch, ktorých vstup obsahuje pole alebo záznam. Nová voľba maxToolInputElements je predvolene vypnutá, preto ju nastavte tesne nad najväčší vstup, ktorý vaše nástroje potrebujú, a zároveň znížte maxRequestBodySize. Ak telo požiadavky spracúvate sami, napríklad cez express.json(), nastavte limit aj tam.

OAuth klient a staré uložené tokeny

Klient postavený na SDK mohol poslať refresh_token a client_secret autorizačnému serveru, ktorý si vybral MCP server. Oprava ukladá k prihlasovacím údajom aj issuer, tokeny uložené pred aktualizáciou ho však nemajú. Doplňte ho k nim, alebo ich zmažte, aby sa používatelia prihlásili znova. Hotovým poskytovateľom, napríklad ClientCredentialsProvider, treba odovzdať expectedIssuer. Ak sa klient mohol pripojiť k serveru, ktorému nedôverujete, upozornenie odporúča vymeniť client secret alebo podpisový kľúč a zrušiť vydané tokeny.

Pri overovaní tokenov a limite vstupov platí, že bez týchto zmien uvidíte v package.json opravenú verziu, ale server sa správa rovnako ako pred aktualizáciou.

Postup pre firmu: šesť krokov na tento týždeň

Zistite, kto server spravuje, overte verzie, aktualizujte na testovacej kópii, upravte kód, otestujte server s dvoma klientmi naraz a pri podozrení vymeňte kľúče.

  1. Spíšte všetky MCP servery a klientov vo firme a ku každému človeka, ktorý ho spravuje. Patria sem aj prototypy, ktoré niekto postavil s AI nástrojom a nechal bežať.
  2. V každom projekte spustite npm ls a hľadajte balíky @modelcontextprotocol. Vo vetve 1.x je cieľ aspoň 1.32.0, vo vetve 2.x server a client aspoň 2.3.0 a adaptéry podľa tabuľky.
  3. Aktualizujte najprv testovaciu kópiu, nie ostrý server. Server so zdieľanou inštanciou po aktualizácii prestane odpovedať, kým sa neupraví kód.
  4. Urobte zmeny z predchádzajúcej časti: server pre každú požiadavku alebo session, kontrolu audience, nastavenie maxToolInputElements a maxRequestBodySize, issuer pri OAuth. Ak kód používa experimentálny taskStore, odstráňte ho, lebo špecifikácia 2026-07-28 ho nahradila novým rozšírením.
  5. Otestujte server s dvoma klientmi súčasne a overte, že každý dostáva len svoje odpovede. Pošlite aj požiadavku väčšiu ako 4 MiB a overte, že ju server odmietne kódom 413 a nespadne.
  6. Ak sa klient mohol pripojiť k serveru mimo vašej kontroly alebo ho tam mohlo poslať presmerovanie, vymeňte API kľúče a client secret a zrušte vydané tokeny.
Veža z čiernych kvádrov, do ktorej spodnej časti sa zasúva nový oranžový kváder, a vedľa nej visiaci zámok s kľúčom
Nová verzia balíka je len prvý krok, po nej prichádzajú zmeny v kóde a výmena kľúčov.

Podobnú situáciu sme opisovali pri zmene prístupov v Supabase Data API: aplikácia funguje, kým sa nezmení knižnica alebo služba pod ňou, a potom rozhoduje, či ju niekto vo firme vie upraviť. Server bez správcu ostane na starej verzii aj so všetkými chybami, ktoré sa ho týkajú.

MCP SDK zraniteľnosť v praxi: kto za server zodpovedá

Podľa nás je najväčším rizikom MCP server, ktorý vznikol ako rýchly pokus a nemá človeka, ktorý by ho aktualizoval.

Pri automatizáciách v menších slovenských firmách v praxi vidíme toky, ktoré vznikli ako pokus a ostali bežať. S MCP servermi hrozí to isté, len s väčším dosahom, lebo server sprístupňuje AI asistentovi objednávky, faktúry alebo údaje zákazníkov. Ak server pracuje s osobnými údajmi, odpoveď doručená nesprávnemu klientovi znamená, že sa tieto údaje dostali k inému používateľovi. Kontrolu, komu údaje patria, robí server. Ako s dodanými údajmi potom pracuje samotný model, vysvetľujeme v článku čo je LLM a čo AI naozaj nevie.

Pred stavbou vlastného servera si preto položte otázku, či ho naozaj potrebujete. Ak potrebujete len prepojiť dva bežné nástroje, môže stačiť automatizačná platforma, ktorú aktualizuje jej prevádzkovateľ. Porovnanie nájdete v článku o automatizáciách pre malé firmy cez n8n a Make.

Ako to riešime v Denve: integrácie napájame cez oficiálne rozhrania nástrojov a prístupy držíme na nevyhnutnom minime. Kritické kroky nastavíme tak, aby vás chyba upozornila hneď, a riešenie odovzdáme zdokumentované, aby ste mu rozumeli a neboli na nás naviazaní.

Kedy to zvládnete sami a kedy s nami

Zvládnete sami, ak:

  • server spravuje vývojár, ktorý ho napísal a pozná jeho kód,
  • používate len lokálne servery cez stdio v desktopovej AI aplikácii,
  • aktualizácia prešla na testovacej kópii a server odpovedá dvom klientom naraz správne.

Oplatí sa prizvať nás, ak:

  • server postavil AI nástroj alebo externý dodávateľ a nikto vo firme jeho kód nepozná,
  • server pracuje s objednávkami, faktúrami alebo osobnými údajmi zákazníkov,
  • klient sa prihlasuje cez OAuth a nie je jasné, ktoré tokeny a kľúče treba vymeniť.

Záver

Ak v projektoch nemáte žiadny balík @modelcontextprotocol, nemusíte robiť nič. Lokálny server cez stdio aktualizujte pri najbližšej údržbe. Ak cez HTTP beží MCP server, ktorý pracuje s firemnými alebo osobnými údajmi, aktualizácia a štyri zmeny v kóde patria do tohto týždňa, najprv na testovacej kópii a potom s testom dvoch klientov naraz. Server bez správcu nechajte niekoho prevziať, alebo ho vypnite, kým sa to nestane.

Neviete, či je váš MCP server v poriadku?

Napíšte nám, čo váš MCP server alebo integrácia s AI robí a kto ju postavil, a prejdeme s vami verzie, kód aj prístupy.

FAQ

Časté otázky.

Týka sa zraniteľnosť MCP SDK aj lokálnych serverov cez stdio?

Serverových chýb nie. Upozornenia na zdieľanú inštanciu, vyčerpanie pamäte a chýbajúci limit požiadaviek výslovne uvádzajú, že servery len cez stdio zasiahnuté nie sú, a obe chyby klienta sa netýkajú klientov cez stdio. Aktualizáciu na opravenú verziu napriek tomu odporúčame pri najbližšej údržbe.

Na akú verziu MCP SDK treba aktualizovať?

Vo vetve 1.x aspoň na @modelcontextprotocol/sdk 1.32.0, vo vetve 2.x na server a client 2.3.0 alebo novšie. K 22. októbru 2026 sú na npm najnovšie verzie 1.32.1 a 2.3.1. Adaptéry express, node a hono majú vlastné opravené verzie 2.0.2, 2.1.0 a 2.0.1.

Zneužil niekto tieto chyby v praxi?

Upozornenia o zneužití nič neuvádzajú. Pri dvoch chybách s pamäťou servera však podľa nich útočník nepotrebuje prihlasovacie údaje, ak server neoveruje požiadavky skôr, než sa dostanú k SDK, preto aktualizáciu neodkladajte.

Prečo po aktualizácii MCP server prestal odpovedať?

Server pravdepodobne zdieľa jednu inštanciu servera alebo transportu medzi viacerými klientmi. Verzia 2.3.0 balíka @modelcontextprotocol/server to odmietne chybou ALREADY_CONNECTED, preto treba kód upraviť tak, aby vytváral server pre každú požiadavku alebo pre každú session.

Musím po týchto opravách vymeniť API kľúče?

Len ak sa klient mohol pripojiť k MCP serveru, ktorému nedôverujete, alebo ho presmerovanie mohlo poslať na cudziu adresu. Vtedy upozornenia odporúčajú vymeniť API kľúče, client secret alebo podpisový kľúč a zrušiť vydané tokeny.

Zdieľať
Pri tvorbe článku sme využili umelú inteligenciu. Fakty a zdroje prešli redakčnou kontrolou.
Súvisiace služby

Potrebujete pomôcť s webom alebo e-shopom?

Ďalšie články

Mohlo by vás zaujímať.

Bezpečnosť automatizácií: webhooky, prístupy a API kľúče pod kontrolou
Automatizácie a AI 15. 10. 2026 · 11 min čítania

Bezpečnosť automatizácií: webhooky, prístupy a API kľúče pod kontrolou

Webhook bez overenia podpisu spustí vašu automatizáciu komukoľvek, kto pozná jeho adresu. Stripe vo svojej dokumentácii výslovne píše, že útočník tak môže poslať falošné udalosti a spustiť vybavenie objednávky, udelenie prístupu k účtu alebo zmenu záznamov. Bezpečnosť automatizácií sa preto točí okolo otázky, kto smie tok spustiť, pod akým účtom pri tom koná a ako […]

Čítať článok
AI automatizácia firemných procesov: čo sa reálne oplatí automatizovať
Automatizácie a AI 25. 8. 2026 · 15 min čítania

AI automatizácia firemných procesov: čo sa reálne oplatí automatizovať

AI automatizácia firemných procesov šetrí čas a znižuje chyby pri opakovaných úkonoch - ale nie každý proces sa oplatí automatizovať. Najlepší potenciál majú procesy, ktoré sú opakujúce sa, riadené jasnými pravidlami a majú digitálny vstup aj výstup: napríklad spracovanie objednávok, synchronizácia dát medzi e-shopom a CRM alebo odosielanie faktúr. Procesy s mnohými výnimkami, kreatívnym úsudkom […]

Čítať článok
Čo je MCP a prečo vznikol: Model Context Protocol po slovensky a bez kódu
AI návody 24. 10. 2026 · 14 min čítania

Čo je MCP a prečo vznikol: Model Context Protocol po slovensky a bez kódu

Odkedy Anthropic 25. novembra 2024 zverejnil MCP ako otvorený štandard, nemusí mať každý AI nástroj vlastné prepojenie na každý firemný systém: ten istý vzdialený MCP server dnes vie použiť Claude aj ChatGPT. Čo je MCP? Model Context Protocol je otvorený protokol, cez ktorý AI aplikácia dostane prístup k dátam, nástrojom a pracovným postupom mimo samotného […]

Čítať článok
Postavme niečo spolu

Nápad máte vy. Zvyšok nechajte na nás.

Povedzte nám, čo potrebujete. Ozveme sa do jedného pracovného dňa s úprimným pohľadom, či sme tí praví, aký vidíme rozsah a termín, a pošleme cenovú ponuku na mieru.

Povinné je len meno, e-mail a správa. Polia s červenou bodkou sú povinné.

S čím vám môžeme pomôcť?
Pripojte podklady (voliteľné)
Alebo nám napíšte na hello@denva.studio · +421 902 074 830