niedziela, 12 lipca 2026

Nowości

Ghostcommit: ukryty w obrazku PNG atak nakłania agentów AI do wykradania haseł

ProgramowaniePatryk Raba
Fot. Tima Miroshnichenko, Pexels (Pexels License)

Badacze z University of Missouri-Kansas City opisali atak Ghostcommit, który ukrywa złośliwe instrukcje wewnątrz obrazka PNG w pliku AGENTS.md i nakłania agentów kodujących do wykradania danych z plików .env. Cursor, Antigravity, Claude Sonnet i GPT-5.5 dały się oszukać, Claude Code odmówił za każdym razem.

Spis treści
  1. Jak działa atak
  2. Które narzędzia dały się oszukać
  3. Skala problemu z przeglądem kodu
  4. Znaczenie dla firm korzystających z agentów kodujących

Zespół badawczy ASSET z University of Missouri-Kansas City opisał nowy atak na agentów kodujących AI, nazwany Ghostcommit. Technika ukrywa złośliwe instrukcje wewnątrz obrazka PNG umieszczonego w pliku AGENTS.md repozytorium i nakłania asystenta AI do odczytania pliku z poufnymi danymi .env, zakodowania go jako listę liczb całkowitych i wpisania wyniku prosto do kodu, gdzie umyka skanerom sekretów.

Jak działa atak

Mechanizm wykorzystuje lukę w sposobie, w jaki narzędzia do automatycznego przeglądu kodu, takie jak CodeRabbit czy Bugbot, traktują pliki graficzne. Boty te w ogóle nie otwierają obrazków, więc złośliwy tekst wewnątrz PNG umieszczonego w pliku AGENTS.md przechodzi przez automatyczny przegląd niezauważony. Sam plik AGENTS.md służy w wielu projektach jako instrukcja dla agentów AI, opisująca kontekst repozytorium, więc agent traktuje jego zawartość, w tym zaszyty w obrazku tekst, jako wiarygodne polecenie.

Instrukcja ukryta w obrazku każe agentowi odczytać plik .env bajt po bajcie, zakodować każdy bajt jako liczbę całkowitą i zapisać wynik jako stałą modułu w kodzie źródłowym. Atak nie uruchamia się od razu, tylko czeka, aż deweloper poprosi asystenta AI o wykonanie zupełnie niezwiązanego zadania, na przykład napisanie funkcji pomocniczej czy dodanie nowego modułu. W tym momencie agent ma już wchłonięte ukryte instrukcje i przy okazji zwykłej pracy dopisuje zakodowane sekrety do generowanego kodu.

Które narzędzia dały się oszukać

Badacze przetestowali atak na kilku popularnych środowiskach programistycznych wspieranych przez AI. Cursor, Antigravity oraz modele Claude Sonnet, Gemini i GPT-5.5 dały się skłonić do wykonania ukrytych instrukcji. Wyjątkiem był Claude Code od Anthropic, który odmówił wykonania ataku we wszystkich testowanych konfiguracjach modeli, co według badaczy sugeruje, że dodatkowe zabezpieczenia na poziomie samego narzędzia mają większe znaczenie niż wybór modelu językowego.

Across ten runs each, the coding tool mattered more than the model - Sudipta Chattopadhyay i Murali Ediga, ASSET Research Group, University of Missouri-Kansas City

Skala problemu z przeglądem kodu

Najbardziej niepokojącym elementem badania nie jest sam atak, lecz kontekst, w jakim może się rozprzestrzeniać. Analiza 6480 pull requestów w 300 najaktywniejszych publicznych repozytoriach z ostatnich 90 dni wykazała, że aż 73 procent trafiło do głównej gałęzi kodu bez żadnego realnego przeglądu, ani przez człowieka, ani przez automatycznego bota. To oznacza, że złośliwy plik AGENTS.md z ukrytym obrazkiem mógłby trafić do wielu projektów praktycznie niezauważony.

Zespół zbudował też prostą obronę opartą na dodatkowej warstwie skanowania, która w teście na 80 nieznanych wcześniej pull requestach przepuściła tylko jeden atak, przy zerowej liczbie fałszywych alarmów na 30 legalnych zgłoszeniach. Pokazuje to, że problem da się ograniczyć, ale wymaga świadomego dodania kolejnej warstwy weryfikacji, a nie polegania wyłącznie na wbudowanych zabezpieczeniach modelu.

Znaczenie dla firm korzystających z agentów kodujących

Dla polskich zespołów programistycznych, które coraz częściej korzystają z agentów AI jak Cursor czy Antigravity do codziennej pracy, Ghostcommit jest kolejnym dowodem, że pliki konfiguracyjne przeznaczone dla agentów, takie jak AGENTS.md, wymagają tego samego poziomu kontroli co kod źródłowy. Repozytoria open source przyjmujące kontrybucje z zewnątrz są szczególnie narażone, bo złośliwy obrazek może trafić do projektu wraz z pozornie niewinnym pull requestem.

Badacze podkreślają, że narzędzia do automatycznego przeglądu muszą stać się w pełni multimodalne, czyli analizować obrazki, dokumentację i pliki konfiguracyjne z taką samą uwagą jak sam kod. Jeśli agent AI potrafi odczytać obrazek, musi też umieć rozpoznać, że ten obrazek może próbować nim manipulować. Proof of concept ataku został opublikowany na GitHubie, a ustalenia przekazano producentom podatnych narzędzi przed publikacją.

Ghostcommit dołącza do rosnącej listy technik wykorzystujących ukryte instrukcje w treściach multimedialnych do atakowania agentów AI, obok wcześniej opisywanych ataków przez zatrute strony internetowe czy manipulację procesem downsamplingu obrazów w narzędziach takich jak Gemini CLI.

Źródła: Ghostcommit hides prompt injection in images to fool AI agents, steal secrets (bleepingcomputer.com), Researchers hid a prompt injection inside a PNG, and AI fell for it (digitaltrends.com)

Udostępnij: