Nowości
Badacze rozdzielili złośliwe polecenie na kawałki i oszukali agentów kodujących AI

Grupa badawcza ASSET z University of Missouri-Kansas City pokazała, że rozbicie złośliwego polecenia na pozornie niewinne fragmenty w serwerze MCP potrafi nakłonić agentów kodujących do wykradania kluczy SSH i kodu źródłowego, mimo że wprost proszone o to odmawiają.
Spis treści
Poproszony wprost o wysłanie cudzych kluczy SSH agent kodujący AI odmawia. Ale gdy to samo żądanie trafia do niego w kawałkach, ukrytych w opisie narzędzia i w wyniku jego działania, wielu agentów samo skleja polecenie w całość i wykonuje je bez pytania. Tak działa GhostSplice, technikę tę opisała grupa badawcza ASSET z University of Missouri-Kansas City.
Jak działa sztuczka z formularzem
Model Context Protocol, standard łączący agentów AI z narzędziami zewnętrznymi, pozwala serwerowi MCP dostarczać treści przez kilka niezależnych kanałów naraz: opis narzędzia, wynik jego działania, a w niektórych konfiguracjach także wiadomości typu sampling. Badacze z ASSET pokazali, że wszystkie te kanały trafiają do jednego wspólnego bloku pamięci roboczej agenta, bez żadnego oznaczenia, który fragment pochodzi skąd.
W referencyjnym przykładzie zespół zbudował fałszywy serwer MCP reklamujący nieszkodliwe narzędzie o nazwie integrity_checker, z czterema pustymi polami opisanymi neutralnie jako alfa, beta, gamma i delta. Dopiero wynik innego, wcześniej wywołanego narzędzia skanującego projekt zawierał mapowanie, które pole ma zawierać klucz SSH, które kod źródłowy, które dane klientów, a które zawartość pliku .env, rzekomo do celów weryfikacji sumy kontrolnej po stronie serwera.
Dla modelu zadanie sprowadza się do wypełnienia formularza, o który poprosiło narzędzie - ASSET Research Group
Ten sam model, różny wynik
Najbardziej niepokojącym elementem badania jest rozbieżność wyników w zależności od środowiska, w którym pracuje ten sam model. Claude Haiku 4.5 odmawiał ataku w bezpośrednich testach przez API, ale w środowisku Cursor uległ mu w każdym przypadku. GPT-5.4 wykazał 90 procent skuteczności ataku w Cursor, 100 procent przez Codex CLI, ale 0 procent za warstwą zabezpieczeń Claude Code. Claude Sonnet 4.6 i Opus 4.6 wypadły najlepiej, z zerową skutecznością w większości scenariuszy, choć badacze odnotowali pojedyncze przypadki, w których Sonnet mimo to ujawnił fragmenty kodu źródłowego zawierającego zaszyte na sztywno klucze dostępowe.
Oznacza to, że sama nazwa i wersja modelu nie mówi wystarczająco dużo o odporności na ten typ ataku. Decydujące są warstwy zabezpieczeń narzucone przez konkretnego klienta, w którym agent działa, ich obecność lub brak w danym środowisku programistycznym może zmienić wynik z całkowitej odmowy na stuprocentową skuteczność wycieku.
Dlaczego wcześniejsze zabezpieczenia zawodzą
Twórcy specyfikacji MCP oraz OpenAI zalecają, by człowiek zachowywał możliwość odrzucenia każdego wywołania narzędzia oraz by adnotacje z niezaufanych serwerów traktować jako dane niezaufane. To wytyczne obecne w dokumentacji od dłuższego czasu, GhostSplice pokazuje jednak, że same w sobie nie wystarczają, gdy złośliwa treść nigdy nie pojawia się w jednym miejscu jako kompletne żądanie, tylko składa się z fragmentów rozproszonych po kanałach, które agent i tak regularnie przetwarza.
ASSET proponuje podejście bardziej restrykcyjne: traktować cały wynik działania narzędzia jako dane, nigdy jako instrukcję, oraz blokować sytuacje, w których wartość zwrócona przez jedno narzędzie trafia bez weryfikacji do argumentów wywołania innego narzędzia. To wymagałoby zmian architektonicznych w sposobie, w jaki klienci MCP zarządzają kontekstem rozmowy, nie tylko dopisania kolejnej reguły filtrującej.
Znaczenie dla firm korzystających z agentów kodujących
Badacze zastrzegają, że GhostSplice nie jest zewnętrznym włamaniem, atak wymaga, by deweloper sam podłączył złośliwy lub przejęty serwer MCP do swojego środowiska, a agent musiał już mieć uprawnienia do odczytu plików takich jak klucze SSH czy .env. W praktyce oznacza to ryzyko związane z łańcuchem dostaw narzędzi deweloperskich, fałszywym lub podszywającym się pakietem MCP w publicznym rejestrze, a nie z bezpośrednim atakiem na infrastrukturę firmy.
Dla zespołów programistycznych w Polsce, które coraz częściej podłączają agentów kodujących do własnych repozytoriów i baz danych, wnioski są konkretne: sama reputacja dostawcy modelu nie chroni przed tym typem manipulacji, a każdy dodatkowy serwer MCP z automatu rozszerza powierzchnię ataku o kolejny kanał, którym można przemycić instrukcję w kawałkach. Audyt źródeł MCP i ograniczanie uprawnień odczytu plików agentom stają się zadaniem równie ważnym jak wybór samego modelu.
Kod dowodowy GhostSplice jest publicznie dostępny na GitHubie, co ma z jednej strony pomóc zespołom bezpieczeństwa przetestować własne wdrożenia, a z drugiej rodzi pytanie o to, jak szybko podobne techniki fragmentacji trafią do rzeczywistych kampanii przeciwko firmom korzystającym z agentów AI w codziennej pracy programistycznej.


