Nieautoryzowane transakcje kryptowalutowe umożliwione przez thirdweb MCP Server
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:
- Wykryć udostępniony punkt końcowy pod adresem
http://victim_ip:8000/sse - Połączyć się przy użyciu standardowych narzędzi MCP, takich jak MCP Inspector
- Wykonać nieautoryzowane transakcje przy użyciu narzędzia
send_transaction - 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.0sprawia, ż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 ssewe 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.0na127.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:
- Mechanizmy uwierzytelniania są niezbędne dla każdej dostępnej z sieci usługi MCP
- Domyślne ustawienia wiązania sieciowego powinny przedkładać bezpieczeństwo nad wygodę
- Zabezpieczenie warstwy transportowej powinno być stosowane w celu ograniczenia ataków opartych na HTTP
- 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.