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 :

  1. Découvrir le point de terminaison exposé à l’adresse http://victim_ip:8000/sse
  2. Se connecter à l’aide d’outils MCP standard tels que MCP Inspector
  3. Exécuter des transactions non autorisées à l’aide de l’outil send_transaction
  4. 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.0 rend 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 sse dans 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 :

  1. Les mécanismes d’authentification sont essentiels pour tout service MCP accessible via le réseau
  2. Les valeurs par défaut de liaison réseau devraient privilégier la sécurité plutôt que la commodité
  3. La sécurité de la couche de transport devrait être utilisée pour atténuer les attaques basées sur HTTP
  4. 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.

Références