Autor: Evan Harris
Ryzyko: Wysokie
Komponent, którego dotyczy problem: thirdweb MCP Server

Wprowadzenie

W ramach naszych bieżących badań nad bezpieczeństwem serwerów Model Context Protocol (MCP) zidentyfikowaliśmy istotną lukę w zabezpieczeniach serwera thirdweb MCP Server, która umożliwia nieautoryzowane transakcje kryptowalutowe za pośrednictwem nieuwierzytelnionego dostępu sieciowego.

Przegląd luki

thirdweb MCP Server, uruchomiony z flagą --transport sse, udostępnia nieuwierzytelniony interfejs Server-Sent Events (SSE), który domyślnie wiąże się z adresem 0.0.0.0:8000. Taka konfiguracja pozwala zdalnym atakującym wykonywać nieautoryzowane transakcje kryptowalutowe z portfeli ofiar.

Szczegóły techniczne

Problem

Skonfigurowany z transportem SSE serwer:

  • Wiąże się z adresem 0.0.0.0:8000, dzięki czemu jest dostępny z dowolnego hosta w sieci
  • Nie zapewnia żadnego mechanizmu uwierzytelniania dla punktu końcowego /sse
  • Ufa każdemu połączonemu klientowi w zakresie wykonywania operacji uprzywilejowanych, w tym transakcji kryptowalutowych

Scenariusz ataku

Atakujący może:

  1. Wykryć udostępniony punkt końcowy pod adresem http://victim_ip:8000/sse
  2. Połączyć się przy użyciu standardowych narzędzi MCP, takich jak MCP Inspector
  3. Wykonać nieautoryzowane transakcje przy użyciu narzędzia send_transaction
  4. Przetransferować kryptowalutę z portfela ofiary na własny adres

Proof of Concept

Podatna konfiguracja

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

Wykonanie nieautoryzowanej transakcji

Za pomocą narzędzia MCP Inspector atakujący może połączyć się z adresem http://victim_ip:8000/sse i uruchomić narzędzie send_transaction z odpowiednimi parametrami, aby przetransferować kryptowalutę z portfela ofiary na adres kontrolowany przez atakującego.

[Szczegóły techniczne pominięto do czasu udostępnienia poprawki]

Prowadzi to do nieautoryzowanego transferu kryptowaluty z portfela ofiary bez jakiegokolwiek uwierzytelnienia lub zgody użytkownika.

Ocena skutków

Ta luka umożliwia:

  • Bezpośrednią kradzież kryptowaluty z portfeli ofiar bez zgody użytkownika
  • Narażenie w skali całej sieci dotyczące kawiarni, biur, sieci publicznych i każdej skompromitowanej sieci prywatnej

Czynniki ryzyka

  • Narażenie sieciowe: Domyślne wiązanie z adresem 0.0.0.0 sprawia, że usługa jest dostępna w całej sieci
  • Brak uwierzytelniania: Każdy klient może się połączyć i wykonywać operacje uprzywilejowane
  • Cel o wysokiej wartości: Bezpośredni dostęp do transakcji kryptowalutowych
  • Ciche działanie: Ataki mogą przebiegać bez wiedzy użytkownika

Zalecane środki zaradcze

Dla użytkowników (natychmiast)

  • Unikaj używania --transport sse we współdzielonych środowiskach sieciowych
  • Używaj wiązania z localhost poprzez modyfikację domyślnej konfiguracji
  • Wdróż ograniczenia na poziomie sieci (zapory sieciowe, VPN)

Dla programistów (długoterminowo)

  • Zmień domyślne wiązanie z 0.0.0.0 na 127.0.0.1
  • Wdróż uwierzytelnianie dla wszystkich interfejsów transportowych
  • Dodaj ostrzeżenia dotyczące bezpieczeństwa w dokumentacji i danych wyjściowych CLI
  • Rozważ modele bezpieczeństwa specyficzne dla danego transportu

Ta luka została zgłoszona zespołowi thirdweb zgodnie z praktykami odpowiedzialnego ujawniania. Zalecamy użytkownikom aktualizację do najnowszej wersji, gdy tylko będą dostępne poprawki.

Szersze implikacje

To odkrycie uwypukla ważne kwestie bezpieczeństwa dotyczące serwerów MCP:

  1. Mechanizmy uwierzytelniania są niezbędne dla każdej dostępnej z sieci usługi MCP
  2. Domyślne ustawienia wiązania sieciowego powinny przedkładać bezpieczeństwo nad wygodę
  3. Zabezpieczenie warstwy transportowej powinno być stosowane w celu ograniczenia ataków opartych na HTTP
  4. Dokumentacja bezpieczeństwa powinna opisywać ryzyko związane z wdrożeniem

Oś czasu ujawnienia

  • 2025-05-23: Luka odkryta i zgłoszona zespołowi thirdweb
  • 2025-07-18: Ponowny e-mail z prośbą o potwierdzenie otrzymania zgłoszenia
  • 2025-09-02: Ostateczne sprawdzenie potwierdzające, że raport zostanie upubliczniony
  • 2025-09-03: Publiczne ujawnienie i publikacja komunikatu o bezpieczeństwie

Podsumowanie

Możliwość wykonywania nieautoryzowanych transakcji w serwerze thirdweb MCP Server pokazuje kluczowe znaczenie bezpiecznych ustawień domyślnych w narzędziach programistycznych integrujących blockchain i sztuczną inteligencję.

W miarę rozwoju adopcji MCP wdrażanie solidnych środków bezpieczeństwa staje się tym bardziej istotne dla ochrony cyfrowych aktywów użytkowników i utrzymania zaufania do ekosystemu.

Organizacje i osoby wdrażające serwery MCP powinny przeprowadzać dokładne przeglądy bezpieczeństwa, stosować strategie obrony w głąb i zachowywać świadomość ryzyka narażenia sieciowego.

Źródła