Skip to main content
WebguneWebgunebeta
Pricing
Toutes les failles

MoyenneCVE-2026-116684October 27, 2026

Model Context Protocol Python SDK : l'authentification par jeton serveur accepte les jetons émis pour un serveur de ressources différent

Exploitable dans des cas précis ou avec un impact limité : à corriger à la prochaine mise à jour.

Sévérité
Moyenne6.8 / 10
Publiée le
October 27, 2026
Mise à jour
October 27, 2026

L'avis

Traduction automatique de l'avis officiel. En cas de doute, l'avis d'origine, plus bas, fait foi.

Résumé

Dans les versions affectées, l'authentification par jeton côté serveur du SDK n'avait aucun moyen de vérifier qu'un jeton avait été émis pour votre serveur (son public). Lorsqu'un serveur d'autorisation émet des jetons pour plusieurs services, un jeton valide pour un autre service était également accepté par votre serveur MCP.

Suis-je concerné ?

Oui, si votre serveur HTTP utilise l'authentification par jeton du SDK (auth=AuthSettings(...) avec token_verifier=), que son serveur d'autorisation émet également des jetons pour d'autres services, et que votre TokenVerifier ne vérifie pas le public (aud) du jeton lui-même.

Versions affectées :

  • mcp 1.10.0 à 1.29.1
  • mcp 2.0.0 à 2.1.1
Correction

Mettez à jour vers :

  • 1.x : mcp 1.30.0 ou version ultérieure
  • 2.x : mcp 2.2.0 ou version ultérieure

La mise à jour seule ne change rien. Les versions corrigées ajoutent un paramètre validate_token_resource qui est désactivé sauf à le définir. Pour activer la vérification, apportez ces deux changements ensemble :

  1. Définissez validate_token_resource=True dans AuthSettings, avec resource_server_url défini sur le public que votre serveur d'autorisation place dans les jetons pour votre serveur.
  2. Retournez le public du jeton depuis verify_token() en tant que AccessToken.resource.

Un jeton pour un autre service reçoit alors un 401. Avec seulement le premier changement, chaque demande reçoit un 401.

Si votre TokenVerifier vérifie déjà le public, définissez validate_token_resource=False pour supprimer l'avertissement de dépréciation. Le paramètre sera activé par défaut dans la version 3.0.

Si vous ne pouvez pas encore mettre à jour, rejetez tout jeton dont le aud ne contient pas votre serveur à l'intérieur de verify_token(). Cela corrige le problème sur toutes les versions.

Composants touchés

ComposantVersions touchéesCorrigé en
mcpPython (pip)>= 2.0.0, < 2.2.02.2.0
mcpPython (pip)>= 1.10.0, < 1.30.01.30.0

Vous utilisez une version touchée ? Passez à la version corrigée, puis redéployez.

Model Context Protocol Python SDK: Server bearer-token authentication accepts tokens issued for a different resource server

Summary

In affected versions, the SDK's server-side bearer authentication had no way to check that a token was issued for your server (its audience). Where one authorization server issues tokens for several services, a valid token for another service was also accepted by your MCP server.

Am I affected?

Yes, if your HTTP server uses the SDK's bearer authentication (auth=AuthSettings(...) with token_verifier=), its authorization server also issues tokens for other services, and your TokenVerifier does not check the token's audience (aud) itself.

Affected versions:

  • mcp 1.10.0 through 1.29.1
  • mcp 2.0.0 through 2.1.1
Fix

Upgrade to:

  • 1.x: mcp 1.30.0 or later
  • 2.x: mcp 2.2.0 or later

Upgrading alone changes nothing. The patched versions add a validate_token_resource setting that is off unless you set it. To turn the check on, make both of these changes together:

  1. Set validate_token_resource=True in AuthSettings, with resource_server_url set to the audience your authorization server puts in tokens for your server.
  2. Return the token's audience from verify_token() as AccessToken.resource.

A token for another service then gets 401. With only the first change, every request gets 401.

If your TokenVerifier already checks the audience, set validate_token_resource=False to silence the deprecation warning. The setting will default to True in 3.0.

If you cannot upgrade yet, reject any token whose aud does not include your server inside verify_token(). That closes the issue on every version.

Catégorie : Incorrect Authorization (CWE-863)

Vecteur CVSS : CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N

  • github.comhttps://github.com/modelcontextprotocol/python-sdk/security/advisories/GHSA-w4fh-qvv9-3v23
  • github.comhttps://github.com/modelcontextprotocol/python-sdk/pull/3447
  • github.comhttps://github.com/modelcontextprotocol/python-sdk/pull/3451
  • github.comhttps://github.com/modelcontextprotocol/python-sdk/commit/0c9136841ff092987a20700ff9c2c9789bda2f40
  • github.comhttps://github.com/modelcontextprotocol/python-sdk/commit/8c2fa6eabacde869d75568e33b9d466b58c2f512
  • github.comhttps://github.com/modelcontextprotocol/python-sdk/releases/tag/v1.30.0
  • github.comhttps://github.com/modelcontextprotocol/python-sdk/releases/tag/v2.2.0
  • github.comhttps://github.com/advisories/GHSA-w4fh-qvv9-3v23
WebguneWebgune

The all-in-one sovereign cloud, built and hosted in France.

DiscordDiscordGitHubGitHub
+33 (0)9 72 23 25 00support@webgune.cloud

Product

  • Features
  • Pricing
  • Comparison
  • Changelog
  • Status
  • Vulnerabilities (CVE)
  • Contact

Developers

  • Documentation
  • Frameworks
  • API Reference
  • Examples
  • CLI
  • Tools & VS Code

Legal

  • Terms of Service (CGS)
  • Privacy policy
  • Legal notices
  • Accessibility
  • GDPR
  • DPA
  • Acceptable Use Policy

© 2026 KX712. All rights reserved. Webgune is a KX712 service.

Payments:VisaMasterCardAmerican ExpressApple PayGoogle PaySEPABancontact