KI-Agenten

Kritische Schwachstelle im MCP Python SDK legt OAuth-Zugangsdaten für bösartige Server offen

Eine Sicherheitslücke im offiziellen MCP Python SDK ermöglicht es bösartigen Servern, OAuth-Zugangsdaten einschließlich Client-Secrets und PKCE-Schlüsseln von betroffenen Clients zu stehlen.

Automatisch aus dem englischen Original übersetzt.

Eine kritische Sicherheitslücke im offiziellen Model Context Protocol (MCP) Python SDK erlaubt es bösartigen MCP-Servern, OAuth-Zugangsdaten von verbindenden Clients zu stehlen. Die am 28. September 2026 offengelegte Schwachstelle betrifft die Versionen 1.9.1 bis 1.29.1 sowie 2.0.0 bis 2.1.1 und ermöglicht Angreifern das Abfangen von Client-Secrets, Autorisierungscodes und PKCE-Nachweisschlüsseln.

Was passiert ist

Die Maintainer des MCP Python SDK haben eine Sicherheitsempfehlung herausgegeben, nachdem Forscher von Cycode demonstriert hatten, wie ein bösartiger Server eine Anwendung dazu bringen kann, sensible Authentifizierungsdaten preiszugeben. Wenn ein MCP-Client versucht, sich anzumelden, fragt er den verbundenen Server nach dem Standort seines Autorisierungsservers. In den betroffenen Versionen validierte das SDK diese Antwort nicht streng genug.

Ein bösartiger Server konnte den Client an einen vom Angreifer kontrollierten Endpunkt umleiten oder Anmeldedaten bereitstellen, die legitim wirkten, aber Zugangsdaten an anderer Stelle hinleiteten. Folglich sendete der Client sein langlebiges Client-Secret, seinen einmaligen Autorisierungscode und seinen PKCE-Nachweisschlüssel an den Angreifer. Mit diesen Zugangsdaten konnte der Angreifer beim echten Anmeldedienst ein gültiges Access Token anfordern und damit alle Berechtigungen erhalten, über die die ursprüngliche Anwendung verfügte.

Der Schweregrad der Lücke hängt vom verwendeten OAuth-Anbieter ab. Für Machine-to-Machine-Anbieter, die ohne menschliches Eingreifen arbeiten, wird das Risiko als hoch eingestuft (7.5). Bei interaktiven Anbietern, die eine Benutzeranmeldung erfordern, beträgt der Score 6.5, obwohl der Benutzer die Anmeldung auf einer echt aussehenden Seite genehmigt. Bis zum 29. September 2026 war keine CVE zugewiesen worden, und es wurden keine aktiven Exploits in freier Wildbahn gemeldet.

Wie es funktioniert

Das Kernproblem liegt darin, wie das SDK die Erkennung des Autorisierungsservers handhabt. Während des OAuth-Flows verlässt sich der Client darauf, dass der MCP-Server angibt, wohin Authentifizierungsanfragen gesendet werden sollen. Die verwundbaren SDK-Versionen prüften nicht, ob der angegebene Autorisierungsserver mit dem erwarteten Issuer übereinstimmte, bevor Zugangsdaten gesendet wurden.

Dieser Mangel an Validierung ermöglichte es einem bösartigen Server, den Austausch der Zugangsdaten umzuleiten. Selbst bei Verwendung von PKCE (Proof Key for Code Exchange), das entwickelt wurde, um die Wiederverwendung von Autorisierungscodes zu verhindern, wurde der Schutz aufgehoben, da der Client den Nachweisschlüssel freiwillig an den Angreifer übergab. Dies ermöglichte es dem Angreifer, den Token-Austauschprozess abzuschließen, als wäre er der legitime Client.

Wichtige Details

  • Betroffene Versionen: MCP Python SDK 1.9.1–1.29.1 und 2.0.0–2.1.1.
  • Behobene Versionen: Führen Sie ein Upgrade auf 1.30.0 für die 1.x-Linie oder 2.2.0 für die 2.x-Linie durch.
  • Verwundbare Anbieter: OAuthClientProvider, ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider und der veraltete RFC7523OAuthClientProvider.
  • Nicht betroffene Konfigurationen: MCP-Server, die mit dem SDK erstellt wurden, lokale stdio-Clients und Clients, die ihre eigenen Tokens anhängen, sind nicht verwundbar.
  • Konfigurationsanforderung: Für ClientCredentialsOAuthProvider und PrivateKeyJWTOAuthProvider reicht ein Upgrade allein nicht aus; Entwickler müssen zusätzlich den Parameter issuer= übergeben, um den Client an einen bestimmten Anmeldedienst zu binden.
  • Maßnahme nach dem Upgrade: Löschen Sie gespeicherte OAuth-Client-Registrierungen nach dem Upgrade, da ältere Registrierungen nicht an einen bestimmten Anmeldedienst gebunden sind.

Warum das wichtig ist

Für Ingenieure, die KI-Agenten entwickeln oder externe Tools über MCP integrieren, stellt diese Schwachstelle ein erhebliches Versagen der Vertrauensgrenze dar. Der MCP-Standard ist dafür konzipiert, KI-Anwendungen mit verschiedenen Datenquellen und Tools zu verbinden, was oft Drittanbieter-Server einschließt. Wenn Ihre Anwendung als MCP-Client mit nicht vertrauenswürdigen oder halb vertrauenswürdigen Servern verbindet, riskiert sie die Offenlegung langlebiger Zugangsdaten, die dauerhaften Zugriff auf Ihre Dienste gewähren können.

Die Feinheit der Behebung erhöht die operative Komplexität. Ein einfaches Upgrade des SDK schützt Anwendungen, die bestimmte OAuth-Anbieter verwenden, nicht vollständig, wenn der Parameter issuer nicht explizit konfiguriert wird. Da Python Deprecation-Warnungen standardmäßig ausblendet, könnten viele Entwickler die kritische Anweisung zur Hinzufügung dieses Parameters übersehen, wodurch ihre Anwendungen auch nach dem Update verwundbar bleiben. Dies unterstreicht die Notwendigkeit einer sorgfältigen Überprüfung der Authentifizierungskonfigurationen bei der Einführung neuer Standards wie MCP.

Was Sie tun können

  • Führen Sie sofort ein Upgrade auf MCP Python SDK Version 1.30.0 oder 2.2.0 durch.
  • Stellen Sie sicher, dass der Parameter issuer= auf Ihren erwarteten Anmeldedienst gesetzt ist, wenn Sie ClientCredentialsOAuthProvider oder PrivateKeyJWTOAuthProvider verwenden.
  • Migrieren Sie weg vom veralteten RFC7523OAuthClientProvider, da ihm die Option issuer= vollständig fehlt.
  • Löschen Sie alle gespeicherten OAuth-Client-Registrierungen einmalig nach dem Upgrade, um ungebundene Einträge zu entfernen.
  • Rotieren Sie Client-Secrets und widerrufen Sie vorhandene Tokens bei Ihrem Anmeldedienst, falls Ihr Client sich möglicherweise mit einem nicht vertrauenswürdigen Server verbunden hat.
  • Aktivieren Sie Python-Deprecation-Warnungen in Ihren Entwicklungs- und Staging-Umgebungen, um Konfigurationsprobleme frühzeitig zu erkennen.

Tools aus dem Bytechap-Shop

Weiterlesen

Alle Artikel