Transactions cryptographiques non autorisées rendues possibles par le thirdweb MCP Server
Auteur : Evan Harris
Risque : Élevé
Composant concerné : thirdweb MCP Server
Introduction
Dans le cadre de nos recherches continues en sécurité sur les serveurs Model Context Protocol (MCP), nous avons identifié une vulnérabilité de sécurité importante dans le thirdweb MCP Server qui permet des transactions de cryptomonnaie non autorisées via un accès réseau non authentifié.
Aperçu de la vulnérabilité
Le thirdweb MCP Server, lorsqu’il est lancé avec l’option --transport sse, expose une interface Server-Sent Events (SSE) non authentifiée qui, par défaut, se lie à 0.0.0.0:8000. Cette configuration permet à des attaquants distants d’exécuter des transactions de cryptomonnaie non autorisées depuis les portefeuilles des victimes.
Détails techniques
Le problème
Lorsqu’il est configuré avec le transport SSE, le serveur :
- Se lie à
0.0.0.0:8000, ce qui le rend accessible depuis n’importe quel hôte du réseau - Ne fournit aucun mécanisme d’authentification pour le point de terminaison
/sse - Fait confiance à tout client connecté pour exécuter des opérations privilégiées, y compris des transactions de cryptomonnaie
Scénario d’attaque
Un attaquant peut :
- Découvrir le point de terminaison exposé à l’adresse
http://victim_ip:8000/sse - Se connecter à l’aide d’outils MCP standard tels que MCP Inspector
- Exécuter des transactions non autorisées à l’aide de l’outil
send_transaction - Transférer de la cryptomonnaie depuis le portefeuille de la victime vers sa propre adresse
Preuve de concept
Configuration vulnérable
thirdweb-mcp \
--transport sse \
--secret-key=sk_... \
--engine-url=railway_hosted_engine_url \
--engine-auth-jwt=eyJ... \
--engine-backend-wallet-address=0xVictimWallet
Exécution de transactions non autorisées
À l’aide de MCP Inspector, un attaquant peut se connecter à http://victim_ip:8000/sse et exécuter l’outil send_transaction avec les paramètres appropriés afin de transférer de la cryptomonnaie depuis le portefeuille de la victime vers une adresse contrôlée par l’attaquant.
[Détails techniques masqués en attendant la disponibilité d’un correctif]
Cela entraîne le transfert non autorisé de cryptomonnaie depuis le portefeuille de la victime sans aucune authentification ni consentement de l’utilisateur.
Évaluation de l’impact
Cette vulnérabilité permet :
- Le vol direct de cryptomonnaie dans les portefeuilles des victimes sans le consentement de l’utilisateur
- Une exposition à l’échelle du réseau touchant les cafés, les bureaux, les réseaux publics et tout réseau privé compromis
Facteurs de risque
- Exposition réseau : La liaison par défaut à
0.0.0.0rend le service accessible à l’échelle du réseau - Aucune authentification : Tout client peut se connecter et exécuter des opérations privilégiées
- Cible de grande valeur : Accès direct aux transactions de cryptomonnaie
- Fonctionnement silencieux : Les attaques peuvent se produire à l’insu de l’utilisateur
Mesures d’atténuation recommandées
Pour les utilisateurs (immédiat)
- Évitez d’utiliser
--transport ssedans les environnements réseau partagés - Utilisez une liaison à localhost en modifiant la configuration par défaut
- Mettez en place des restrictions au niveau du réseau (pare-feu, VPN)
Pour les développeurs (long terme)
- Modifiez la liaison par défaut de
0.0.0.0à127.0.0.1 - Mettez en œuvre une authentification pour toutes les interfaces de transport
- Ajoutez des avertissements de sécurité dans la documentation et la sortie de la CLI
- Envisagez des modèles de sécurité propres à chaque transport
Cette vulnérabilité a été signalée à l’équipe de thirdweb dans le cadre de pratiques de divulgation responsable. Nous recommandons aux utilisateurs de mettre à jour vers la dernière version dès que des correctifs seront disponibles.
Implications plus larges
Cette découverte met en lumière d’importantes considérations de sécurité pour les serveurs MCP :
- Les mécanismes d’authentification sont essentiels pour tout service MCP accessible via le réseau
- Les valeurs par défaut de liaison réseau devraient privilégier la sécurité plutôt que la commodité
- La sécurité de la couche de transport devrait être utilisée pour atténuer les attaques basées sur HTTP
- La documentation de sécurité devrait exposer les risques liés au déploiement
Chronologie de la divulgation
- 2025-05-23 : Vulnérabilité découverte et signalée à l’équipe de thirdweb
- 2025-07-18 : Courriel de relance demandant un accusé de réception de la divulgation
- 2025-09-02 : Vérification finale confirmant que le rapport serait rendu public
- 2025-09-03 : Divulgation publique et publication du bulletin de sécurité
Conclusion
La possibilité de réaliser des transactions non autorisées dans le thirdweb MCP Server démontre l’importance cruciale de valeurs par défaut sécurisées dans les outils de développement intégrant blockchain et intelligence artificielle.
À mesure que l’adoption du MCP progresse, la mise en œuvre de mesures de sécurité robustes devient d’autant plus essentielle pour protéger les actifs numériques des utilisateurs et préserver la confiance dans l’écosystème.
Les organisations et les personnes qui déploient des serveurs MCP devraient mener des revues de sécurité approfondies, appliquer des stratégies de défense en profondeur et rester conscientes des risques d’exposition réseau.