Mega Sekurak Hacking Party w Krakowie! 20.10.2025 r. Bilety -30%

Krytyczna podatność w aplikacji pozwalającej na podpięcie serwerów MCP do modelu LLM

21 lipca 2025, 02:48 | W biegu | 0 komentarzy

O tym, czym jest Model Context Protocol pisaliśmy na łamach sekuraka już nie raz. W skrócie, jest to ustandaryzowany protokół pozwalający na rozszerzenie możliwości dużych modeli językowych (LLM, Large Language Models). Dzięki niemu LLMy mogą korzystać z zewnętrznych narzędzi udostępnianych przez serwery MCP w sposób ujednolicony, bez konieczności implementowania tzw. function calling dla każdej nowej usługi co komplikuje integrację. 

Podstawowym narzędziem pozwalającym skorzystać z modelu poszerzonego o MCP jest tzw. MCP host. Do najpopularniejszych można zaliczyć Claude Desktop, ale są też wersje przeznaczone dla modeli self-hosted, np. Open WebUI. Niektóre z hostów wspierają jedynie lokalne serwery MCP, powstał więc projekt mcp-remote, który pozwala rozbudować funkcjonalność również o te zdalne. To właśnie w nim zespół JFrog Security Team odkrył krytyczną (9.6 w skali CVSS 3.1) podatność oznaczoną identyfikatorem CVE-2025-6514. Podatne są wersje od 0.0.5 do 0.1.15 (włącznie). Wymagane łatki zostały wydane i zaleca się instalację wersji 0.1.16. 

W przypadku braku możliwości aktualizacji, jedyna mitygacja to wykorzystanie jedynie zaufanych serwerów MCP i tylko z wykorzystaniem bezpiecznego połączenia korzystającego z TLS. 

W skrócie, luka ta prowadzi do wykonania kodu przez mcp-remote proxy. Może dojść do tego na dwa sposoby;

1. w momencie gdy mcp-remote będzie korzystać ze zdalnego, złośliwego serwera

Obrazek 1. Scenariusz ataku ze złośliwym serwerem MCP (źródło)

2. w momencie skorzystania ze zdalnego serwera MCP bez HTTPS, co pozwala lokalnemu atakującemu dokonać ataku MITM (wiecznie żywy…) i zmusić mcp-remote do wykonania kodu

Obrazek 2. Scenariusz ataku wykorzystujący MITM oraz fakt, że MCP serwer dostępny jest po nieszyfrowanym łączu (źródło)

Efektem działania złośliwego (lub podstawionego) serwera MCP jest wykonanie kodu na systemie, w którym uruchomione jest proxy. W przypadku systemów z rodziny Windows nie ma praktycznie żadnych limitów co do ataku (tzw. arbitrary command execution). Jeśli chodzi o systemy GNU/Linux oraz MacOS, to atakujący (na ten moment) jest ograniczony do uruchomienia dowolnej binarki (bez własnych argumentów). Badacze twierdzą, że może istnieć obejście tego problemu. 

Serwery MCP mogą wymagać uwierzytelnienia, aby tylko uprawnieni użytkownicy mogli korzystać z funkcji, które dostarczają. W tym celu, zaraz po nawiązaniu połączenia, serwer MCP może przekierować użytkownika (korzystającego z remote-mcp) na adres związany np. z OAuth 2.0. W wyniku błędnej obsługi przekierowania, możliwe jest umieszczenie komendy systemowej wewnątrz adresu przekierowania (ang. command injection).

Obrazek 3. Złośliwy flow uwierzytelniania i wstrzyknięcie polecenia w zwróconym auth_endpoint (źródło)

Zachęcamy do zapoznania się z pełną analizą źródła problemu przedstawioną przez autorów znaleziska. Warto pamiętać, że nie tylko Claude Dekstop może korzystać z mcp-remote.Wiele innych popularnych rozwiązań, które pod spodem korzystają ze zdalnych serwerów MCP, może używać tego rozwiązania w zależnościach. Dlatego zalecamy błyskawiczną aktualizację. Mimo, że jak na razie nie trafiliśmy na opis złośliwych serwerów MCP wystawionych w sieci, to jednak sytuacja ta może się szybko zmienić, patrząc jak dynamicznie rozwija się rynek rozszerzeń dla modeli LLM.

~Black Hat Logan

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz