Gepubliceerd:

Tien beveiligingsadviezen voor de officiële MCP-SDK's: welke update u nu nodig hebt (en welke niets doet zonder configuratie)

Kort: tussen 28 september en 5 oktober 2026 publiceerde het MCP-project tien beveiligingsadviezen voor de officiële SDK's: zes voor Python (mcp) en vier voor TypeScript. De ernstigste (CVSS 7,5): een kwaadaardige MCP-server kon de OAuth-geheimen van een client naar zichzelf laten sturen. Veilig zijn Python 1.30.0/2.2.0 en TypeScript 1.32.0/2.3.0 of hoger — maar twee fixes moet u daarna nog zelf aanzetten.

De SDK's van het Model Context Protocol zijn de bibliotheken waarop een groot deel van de MCP-servers en -clients is gebouwd, inclusief maatwerk binnen organisaties. Een fout in de SDK zit dus niet in één product, maar in alles wat erop draait. Opvallend aan deze reeks: de fixes waren grotendeels al uitgebracht vóór de adviezen verschenen. Python 1.30.0 en 2.2.0 staan sinds 7 september op PyPI; de TypeScript-fixes kwamen op 28 september en 2 oktober. Wie sindsdien niet heeft bijgewerkt, draait dus bekende kwetsbaarheden.

Welke kwetsbaarheden zijn er gevonden?

De tien adviezen vallen in vier groepen.

Waarom is updaten bij sommige fixes niet genoeg?

Dit is het punt dat in de berichtgeving het snelst verdwijnt. De adviezen zeggen het letterlijk: "Upgrading alone changes nothing." Bij de audience-controle staat de nieuwe beveiliging standaard uit. In Python zet u validate_token_resource=True in AuthSettings en geeft u de audience terug uit verify_token(); in TypeScript geeft u expectedResource mee aan requireBearerAuth(). Hetzelfde geldt in Python voor machine-to-machine-clients (ClientCredentialsOAuthProvider en PrivateKeyJWTOAuthProvider): zonder de nieuwe parameter issuer= volgen ze nog steeds de autorisatieserver die de MCP-server aanwijst. Op 1.30.0 geeft dat alleen een DeprecationWarning, die Python standaard verbergt. In versie 3.0 worden beide controles verplicht.

Daarnaast adviseert het project na de update opgeslagen OAuth-clientregistraties één keer te wissen, zodat ze opnieuw aan de juiste autorisatieserver worden gekoppeld. En heeft een client mogelijk met een onbetrouwbare server verbonden: roteer het client-secret en trek tokens in.

Ons advies

(1) Inventariseer waar de MCP-SDK's in uw organisatie draaien: eigen servers, interne agents, maar ook tools van leveranciers die de SDK bundelen — vraag daar naar de gebruikte versie. (2) Werk bij naar Python mcp ≥ 1.30.0 of ≥ 2.2.0 en TypeScript @modelcontextprotocol/sdk ≥ 1.32.0 of de 2.x-pakketten ≥ 2.3.0. (3) Zet daarna de twee opt-in-controles aan: audience-validatie op uw HTTP-servers en issuer= bij machine-to-machine-clients. Neem dat op in uw deployment-checklist, niet alleen in deze patchronde. (4) Laat agents met OAuth-rechten alleen verbinden met MCP-servers die u vertrouwt; deze reeks laat zien dat een kwaadaardige server meer kan dan alleen verkeerde antwoorden geven. Meer in veiligheid & watchouts en, als u zelf bouwt, MCP-server bouwen.

Wat zegt dit over de volwassenheid van MCP?

Onze duiding: tien adviezen in acht dagen klinkt alarmerend, maar het patroon is eerder geruststellend dan zorgwekkend. De fouten zijn gemeld door externe onderzoekers, gecoördineerd opgelost, in beide SDK's tegelijk gedicht en gedocumenteerd met een heldere "ben ik geraakt?"-sectie per advies. Zo hoort een volwassen open-sourceproject te werken. De keerzijde is dat een groot deel van de fixes opt-in is. Dat beschermt bestaande installaties tegen breuk, maar legt de verantwoordelijkheid bij de beheerder. Wie MCP zakelijk inzet, moet SDK-updates daarom behandelen als elk ander beveiligingsonderhoud: met eigenaarschap, een vaste cadans en een controle dat de beveiliging ook echt aanstaat. Eerder schreven we over de aanscherping van autorisatie in de specificatie van juli; deze adviezen zijn daar in de praktijk het vervolg op.

Bronnen

Veelgestelde vragen

Naar welke versie van de MCP-SDK moet ik updaten?

Python: mcp 1.30.0 (1.x) of 2.2.0 (2.x) of hoger; de nieuwste is 2.3.0. TypeScript: @modelcontextprotocol/sdk 1.32.0 of hoger, of voor de 2.x-pakketten @modelcontextprotocol/client en @modelcontextprotocol/server 2.3.0 of hoger. Daarmee zijn alle tien de adviezen gedekt.

Ben ik geraakt als ik alleen een MCP-server bouw?

Deels. De OAuth-, redirect- en $ref-fouten zitten aan de clientkant. Servers die over HTTP draaien zijn wel geraakt door de sessie- en geheugenproblemen (Python) en door het ontbreken van een audience-controle op bearer-tokens (beide SDK's). Servers die alleen via stdio lokaal draaien, vallen buiten alle tien adviezen.

Waarom is updaten soms niet genoeg?

Bij twee fixes staat de nieuwe beveiliging standaard uit om bestaande installaties niet te breken: de controle op de audience van tokens aan serverkant, en in Python het vastleggen van de juiste autorisatieserver via issuer= bij machine-to-machine-clients. Die moet u zelf aanzetten; in versie 3.0 worden ze volgens de adviezen de standaard.

Laatst bijgewerkt: