Zum Inhalt springen
Tech & Tacheles„Klartext zu KI, Security und Crypto"
← Alle Beiträge
Künstliche Intelligenz September 30, 2026

MCP Python SDK OAuth-Lücke: Der Server bestimmt, wohin deine Keys gehen

MCP Python SDK OAuth-Lücke (GHSA-qx49-fqc8-xw99, CVSS 7.5): Ein bösartiger MCP-Server kann Client-Secret und PKCE-Code abgreifen. Update allein reicht nicht.

MCP Python SDK OAuth-Lücke: Der Server bestimmt, wohin deine Keys gehen

Die MCP Python SDK OAuth-Lücke ist der bisher unangenehmste Fund im Fundament der Agenten-Welle: Das offizielle Python-SDK für das Model Context Protocol ließ zu, dass ein MCP-Server selbst bestimmt, wohin der Client seine OAuth-Zugangsdaten schickt. Das Advisory GHSA-qx49-fqc8-xw99 wurde am 28. September 2026 veröffentlicht und mit CVSS 7.5 (High) bewertet – gerechnet für die unbeaufsichtigten Provider; mit dem interaktiven Provider sind es 6.5.

Was die MCP Python SDK OAuth-Lücke technisch bedeutet

MCP-Clients fragen den Server, mit dem sie sprechen, wo dessen Anmeldedienst – der Authorization Server – liegt. In den betroffenen Versionen prüfte das SDK diese Antwort nicht auf jedem Weg: Der issuer aus den Metadaten wurde nicht durchgängig validiert, und gespeicherte oder vorab hinterlegte Client-Zugangsdaten waren nicht an den Server gebunden, zu dem sie gehören.

Ein bösartiger oder übernommener MCP-Server konnte deshalb auf sein eigenes Token-Endpoint umlenken – entweder indem er in seinen Protected-Resource-Metadaten den eigenen Authorization Server nennt, oder indem er gar keine veröffentlicht und stattdessen Metadaten ausliefert, die den echten Anmeldedienst als issuer ausgeben. Beim Angreifer landen könnten dann client_secret, Authorization Code und der PKCE-code_verifier; bei PrivateKeyJWTOAuthProvider stattdessen eine signierte Client-Assertion. Angriffe in freier Wildbahn sind bislang weder im Advisory noch bei den Findern beschrieben.

Betroffen sind laut Advisory die Versionen 1.9.1 bis 1.29.1 sowie 2.0.0 bis 2.1.1 (das Versions-Feld des Advisorys zählt bereits ab dem Prerelease 2.0.0a1). Wichtig für die Bewertung: In der 1.x-Linie fehlten die Prüfungen auf jedem Pfad, in 2.0.0 bis 2.1.1 nur beim Legacy-Fallback – also wenn der Server gar keine Protected-Resource-Metadaten veröffentlicht – und bei der Antwort 403 insufficient_scope. Gefixt ist es in 1.30.0 und 2.2.0. Nicht betroffen: Server, die mit dem SDK gebaut sind, reine stdio-Clients und Clients, die ihre Tokens oder Header selbst setzen. Zum Stand 30. September 2026 ist keine CVE-Nummer zugewiesen; das Advisory führt „No known CVE“.

Newsletter

Klartext zu KI, Security, Crypto

Einordnung statt Hype: was hinter den Tech-News steckt und was davon für dich zählt. Startbonus: die AD-Checkliste mit 12 Sofortmaßnahmen als PDF.

Der Fallstrick beim Update

Hier liegt die eigentliche Falle, und sie ist leicht zu übersehen: Wer ClientCredentialsOAuthProvider oder PrivateKeyJWTOAuthProvider einsetzt, hat mit dem reinen Versions-Upgrade nichts gewonnen. Erst wenn zusätzlich issuer= gesetzt wird, weiß der Client, zu welchem Anmeldedienst seine Zugangsdaten gehören. Fehlt der Parameter, folgt er weiter dem, was der MCP-Server behauptet. Auf 1.30.0 ist der Hinweis darauf lediglich eine DeprecationWarning – und die blendet Python standardmäßig aus. Pflicht wird issuer= erst ab Version 3.0. Ein Upgrade, das sich sauber anfühlt und trotzdem nichts ändert, ist die gefährlichste Sorte Upgrade.

Was das für dich bedeutet

Aus Identity-Sicht ist das kein exotischer Agenten-Bug, sondern ein sehr alter Fehler in neuer Verpackung: Eine Komponente lässt sich von der Gegenstelle sagen, wem sie ihre Geheimnisse anvertrauen darf. Wer aus der Active-Directory-Welt kommt, kennt das Muster als Server-Impersonation – nur dass dort seit Jahrzehnten mit Mutual Authentication und gepinnten Endpunkten dagegengehalten wird. Im Agenten-Ökosystem wurde diese Härtung schlicht noch nicht mitgebaut.

Das Risiko hängt davon ab, wie deine Agenten aufgesetzt sind. Ein Client, der ausschließlich mit selbst betriebenen MCP-Servern über stdio spricht, ist nicht betroffen. Kritisch wird es dort, wo ein Agent mit einem produktiven client_secret oder Signaturschlüssel in der Tasche auch fremde MCP-Server anspricht – also in genau dem Setup, das aktuell überall entsteht: ein Agent, viele Werkzeuge, ein Teil davon aus fremder Hand. Dass MCP-Server zu Schlüsselverwahrern geworden sind, war schon im August ein Thema; die aktuelle Lücke zeigt, dass auch die Client-Seite mitgedacht werden muss.

Und noch etwas fällt auf: Die Zugangsdaten gehören meist nicht dem Agenten, sondern einer echten Identität dahinter – einem Dienstkonto, einer App-Registrierung, oft mit weit mehr Rechten als der eine Task bräuchte. Wer hier ein Secret verliert, verliert nicht „einen Agenten“, sondern einen Zugang.

Was du jetzt konkret tun solltest

  • Version prüfen: pip show mcp bzw. ein Blick in die Lockfile. Alles zwischen 1.9.1 und 1.29.1 sowie 2.0.0 bis 2.1.1 ist betroffen.
  • Die stille Warnung laut stellen: Setz in der CI PYTHONWARNINGS=error::DeprecationWarning (oder starte mit python -W error::DeprecationWarning). Dann bricht der Build, wenn issuer= fehlt, statt dass die Warnung unbemerkt verschluckt wird. Diesen Schritt nennt keine der Quellen – er ist aber der einzige, der den Fallstrick oben zuverlässig sichtbar macht.
  • Auf 1.30.0 bzw. 2.2.0 heben – und bei den beiden unbeaufsichtigten Providern zwingend issuer= mitgeben. Ohne diesen Schritt ist das Update wirkungslos.
  • Gespeicherte Client-Registrierungen einmal löschen, damit sich der Client neu registriert. Alles, was 1.x vor 1.30.0 abgelegt hat, ist nicht an einen Issuer gebunden.
  • Bei möglichem Kontakt zu fremden Servern: rotieren. Client Secret neu setzen und Tokens am Authorization Server widerrufen. Das ist die Empfehlung des Advisorys, nicht meine Vorsicht.
  • Vom RFC7523OAuthClientProvider (1.x, deprecated) weg – er kennt keine issuer-Option.
  • Grundsätzlich: Agenten, die OAuth-Zugangsdaten halten, nur mit MCP-Servern sprechen lassen, denen du wirklich vertraust – und je Zweck ein eigenes Konto mit minimalen Rechten statt eines Sammel-Secrets.

Wer sich tiefer damit beschäftigen will, welche Sicherheitsfragen KI-Systeme im Betrieb aufwerfen, findet in unserer Übersicht der besten Fachbücher zu KI und Cybersecurity 2026 passende Einstiege.

Quellen

Werbung in eigener Sache

Ohne MCP-Server greift Claude Desktop nicht auf deine lokalen Ordner zu

Das MCP Starter Kit liefert fertige Server dafür: Vol. 1 mit 5 Servern und 18 Tools, Vol. 2 mit 4 Servern und 20 Tools für lokale Werkzeuge. Vol. 1 29 €, Vol. 2 39 €, beide zusammen 59 € (inkl. 20 % USt für Österreich). Englischsprachig, Kauf über Gumroad. Kein offizielles Anthropic-Produkt.

Server ansehenBeide Bände im Bundle für 59 €
Newsletter

Mehr Klartext, direkt ins Postfach

Neue Analysen zu Security, KI und Crypto per Mail – zum Einstieg die AD-Checkliste mit 12 Sofortmaßnahmen als PDF.

Zur Anmeldung