Autor: Evan Harris
Risiko: Hoch
Betroffene Komponente: thirdweb MCP Server

Einleitung

Im Rahmen unserer laufenden Sicherheitsforschung zu Model-Context-Protocol-(MCP)-Servern haben wir eine erhebliche Sicherheitslücke im thirdweb MCP Server identifiziert, die nicht autorisierte Kryptowährungstransaktionen über einen nicht authentifizierten Netzwerkzugang ermöglicht.

Überblick über die Schwachstelle

Der thirdweb MCP Server stellt, wenn er mit dem Flag --transport sse gestartet wird, eine nicht authentifizierte Server-Sent-Events-(SSE)-Schnittstelle bereit, die sich standardmäßig an 0.0.0.0:8000 bindet. Diese Konfiguration erlaubt es entfernten Angreifern, nicht autorisierte Kryptowährungstransaktionen aus den Wallets der Opfer auszuführen.

Technische Details

Das Problem

Bei Konfiguration mit SSE-Transport tut der Server Folgendes:

  • Er bindet sich an 0.0.0.0:8000 und ist damit von jedem Host im Netzwerk aus erreichbar
  • Er stellt keinen Authentifizierungsmechanismus für den Endpunkt /sse bereit
  • Er vertraut jedem verbundenen Client die Ausführung privilegierter Operationen an, einschließlich Kryptowährungstransaktionen

Angriffsszenario

Ein Angreifer kann:

  1. Den freigelegten Endpunkt entdecken unter http://victim_ip:8000/sse
  2. Sich mit gängigen MCP-Werkzeugen verbinden wie etwa dem MCP Inspector
  3. Nicht autorisierte Transaktionen ausführen mithilfe des Werkzeugs send_transaction
  4. Kryptowährung transferieren aus dem Wallet des Opfers auf seine eigene Adresse

Proof of Concept

Verwundbare Konfiguration

thirdweb-mcp \
  --transport sse \
  --secret-key=sk_... \
  --engine-url=railway_hosted_engine_url \
  --engine-auth-jwt=eyJ... \
  --engine-backend-wallet-address=0xVictimWallet

Ausführung nicht autorisierter Transaktionen

Mithilfe des MCP Inspector kann ein Angreifer eine Verbindung zu http://victim_ip:8000/sse herstellen und das Werkzeug send_transaction mit passenden Parametern ausführen, um Kryptowährung aus dem Wallet des Opfers an eine vom Angreifer kontrollierte Adresse zu transferieren.

[Technische Details bis zur Verfügbarkeit eines Patches zurückgehalten]

Dies führt zum nicht autorisierten Transfer von Kryptowährung aus dem Wallet des Opfers ohne jegliche Authentifizierung oder Einwilligung des Nutzers.

Bewertung der Auswirkungen

Diese Schwachstelle ermöglicht:

  • Direkten Diebstahl von Kryptowährung aus den Wallets der Opfer ohne Einwilligung des Nutzers
  • Netzwerkweite Exposition, die Cafés, Büros, öffentliche Netzwerke und jedes kompromittierte private Netzwerk betrifft

Risikofaktoren

  • Netzwerkexposition: Die standardmäßige Bindung an 0.0.0.0 macht den Dienst netzwerkweit erreichbar
  • Keine Authentifizierung: Jeder Client kann sich verbinden und privilegierte Operationen ausführen
  • Hochwertiges Ziel: Direkter Zugriff auf Kryptowährungstransaktionen
  • Unauffälliger Betrieb: Angriffe können ohne Wissen des Nutzers erfolgen

Empfohlene Gegenmaßnahmen

Für Nutzer (sofort)

  • Verzichten Sie auf --transport sse in gemeinsam genutzten Netzwerkumgebungen
  • Verwenden Sie eine Localhost-Bindung, indem Sie die Standardkonfiguration anpassen
  • Setzen Sie Beschränkungen auf Netzwerkebene um (Firewalls, VPNs)

Für Entwickler (langfristig)

  • Ändern Sie die Standardbindung von 0.0.0.0 auf 127.0.0.1
  • Implementieren Sie eine Authentifizierung für alle Transportschnittstellen
  • Fügen Sie Sicherheitswarnungen in Dokumentation und CLI-Ausgabe hinzu
  • Erwägen Sie transportspezifische Sicherheitsmodelle

Diese Schwachstelle wurde dem thirdweb-Team im Rahmen verantwortungsvoller Offenlegung gemeldet. Wir empfehlen Nutzern, auf die neueste Version zu aktualisieren, sobald Patches verfügbar sind.

Weitergehende Implikationen

Dieser Befund verdeutlicht wichtige Sicherheitsüberlegungen für MCP-Server:

  1. Authentifizierungsmechanismen sind für jeden netzwerkzugänglichen MCP-Dienst unerlässlich
  2. Standardwerte für die Netzwerkbindung sollten Sicherheit über Bequemlichkeit stellen
  3. Sicherheit auf Transportebene sollte eingesetzt werden, um HTTP-basierte Angriffe abzuschwächen
  4. Sicherheitsdokumentation sollte die Risiken der Bereitstellung darlegen

Zeitleiste der Offenlegung

  • 2025-05-23: Schwachstelle entdeckt und an das thirdweb-Team gemeldet
  • 2025-07-18: Nachfass-E-Mail mit Bitte um Empfangsbestätigung der Offenlegung
  • 2025-09-02: Abschließende Rückmeldung mit Bestätigung, dass der Bericht veröffentlicht wird
  • 2025-09-03: Öffentliche Offenlegung und Veröffentlichung des Sicherheitshinweises

Fazit

Die Möglichkeit nicht autorisierter Transaktionen im thirdweb MCP Server zeigt, wie entscheidend sichere Standardeinstellungen in Blockchain- und KI-integrierten Entwicklungswerkzeugen sind.

Mit der wachsenden Verbreitung von MCP wird die Umsetzung robuster Sicherheitsmaßnahmen umso wichtiger, um die digitalen Vermögenswerte der Nutzer zu schützen und das Vertrauen in das Ökosystem zu erhalten.

Organisationen und Einzelpersonen, die MCP-Server betreiben, sollten gründliche Sicherheitsüberprüfungen durchführen, Defense-in-Depth-Strategien umsetzen und sich der Risiken einer Netzwerkexposition bewusst bleiben.

Quellen