Nicht autorisierte Krypto-Transaktionen durch den thirdweb MCP Server
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:8000und ist damit von jedem Host im Netzwerk aus erreichbar - Er stellt keinen Authentifizierungsmechanismus für den Endpunkt
/ssebereit - Er vertraut jedem verbundenen Client die Ausführung privilegierter Operationen an, einschließlich Kryptowährungstransaktionen
Angriffsszenario
Ein Angreifer kann:
- Den freigelegten Endpunkt entdecken unter
http://victim_ip:8000/sse - Sich mit gängigen MCP-Werkzeugen verbinden wie etwa dem MCP Inspector
- Nicht autorisierte Transaktionen ausführen mithilfe des Werkzeugs
send_transaction - 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.0macht 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 ssein 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.0auf127.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:
- Authentifizierungsmechanismen sind für jeden netzwerkzugänglichen MCP-Dienst unerlässlich
- Standardwerte für die Netzwerkbindung sollten Sicherheit über Bequemlichkeit stellen
- Sicherheit auf Transportebene sollte eingesetzt werden, um HTTP-basierte Angriffe abzuschwächen
- 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.