Agenty AI na GitHubie zhakowane jednym komentarzem. Anthropic, Google i Microsoft wolały o tym nie mówić

Wyobraź sobie, że zatrudniasz nowego pracownika. Dajesz mu klucze do biura, hasła do systemów i pełen dostęp do repozytoriów kodu. A potem okazuje się, że wystarczy odpowiednio sformułowany komentarz w zgłoszeniu, żeby ten pracownik posłusznie przekazał wszystkie dane pierwszemu lepszemu oszustowi. Dokładnie tak działają dziś ataki prompt injection na agenty AI zintegrowane z GitHubem – i trzy największe firmy technologiczne świata wolały o tym nie mówić głośno.

Ataki prompt injection – jak badacze przejęli trzy największe agenty AI

Aonan Guan, badacz bezpieczeństwa z Johns Hopkins University, wraz z zespołem (Neil Fendley, Zhengyu Liu, Senapati Diwangkara i Yinzhi Cao) odkryli sposób na przejęcie kontroli nad trzema popularnymi agentami AI działającymi w ekosystemie GitHub Actions: Claude Code Security Review (Anthropic), Gemini CLI Action (Google) i GitHub Copilot Agent (Microsoft). Każdy z tych agentów analizuje kod, przetwarza zgłoszenia lub samodzielnie tworzy pull requesty – i każdy z nich dał się oszukać sprytnie sformułowanymi instrukcjami ukrytymi w zwykłych danych.

Mechanizm jest brutalnie prosty. Agenty AI w GitHub Actions czytają dane z platformy – tytuły pull requestów, treści issues, komentarze – i traktują je jako kontekst do pracy. Guan wpadł na pomysł: co, jeśli zamiast normalnego tytułu PR wklei instrukcje dla agenta? Okazało się, że Claude posłusznie wykonał polecenie uruchomienia komendy systemowej i zwrócił wynik jako „znaleziony problem bezpieczeństwa”. Ironia? Agent do wyszukiwania luk sam stał się luką.

Od ciekawości do kradzieży kluczy API

Pierwszym celem był Claude Code Security Review – narzędzie Anthropica, które automatycznie analizuje zmiany w kodzie pod kątem podatności. Guan zgłosił atak przez platformę HackerOne w październiku 2025 roku. Anthropic poprosił go o eskalację – czy da się wykraść coś więcej niż wynik komendy whoami? Da się. Badacz zademonstrował kradzież tokenów dostępowych GitHuba i klucza API Anthropica.

Schemat ataku wygląda tak: atakujący tworzy pull request ze złośliwą instrukcją w tytule. Agent czyta tytuł, interpretuje go jako polecenie, wykonuje je i publikuje wynik jako komentarz do PR. Atakujący czyta komentarz, kopiuje poświadczenia, zmienia tytuł PR na niewinne „fix typo”, zamyka zgłoszenie i kasuje komentarz bota. Czysto, szybko, praktycznie niewidocznie.

Anthropic wypłacił za to 100 dolarów. Sto. Za lukę ocenioną na 9,4 w skali CVSS (czyli krytyczną). Zamiast publicznego ostrzeżenia firma dodała notatkę w dokumentacji, że narzędzie „nie jest zabezpieczone przed atakami prompt injection i powinno być używane wyłącznie do przeglądania zaufanych PR-ów”.

Gemini i Copilot – ten sam schemat, te same problemy

Po potwierdzeniu podatności w Claude, zespół z Johns Hopkins przetestował Google Gemini CLI Action (integrację Gemini z workflow GitHuba) i GitHub Copilot Agent (autonomicznego agenta Microsoftu, który sam tworzy pull requesty).

W przypadku Gemini ataki prompt injection przebiegały według znanego schematu – złośliwy tytuł plus komentarze z eskalującymi instrukcjami. Badacze wstrzyknęli fałszywą sekcję „Trusted Content Section”, która nadpisała zabezpieczenia Gemini i wymusiła opublikowanie klucza API jako komentarza do issue. Google wypłacił 1337 dolarów bounty.

Copilot okazał się twardszym orzechem. Microsoft dodał trzy warstwy ochrony na poziomie runtime: filtrowanie środowiska, skanowanie sekretów i firewall sieciowy. Guan obszedł wszystkie trzy. Kluczowa różnica polegała na tym, że złośliwe instrukcje trzeba było ukryć w komentarzu HTML – niewidocznym w renderowanym Markdownie. Ofiara, nie widząc ukrytego payloadu, przypisywała issue do Copilota. Agent wykonywał resztę. Microsoft początkowo nazwał to „known issue”, którego nie może odtworzyć, ale ostatecznie wypłacił 500 dolarów bounty w marcu 2026.

„Comment and control” – phishing, ale dla maszyn

Guan nazwał ten typ ataków „comment and control” – gra słów nawiązująca do klasycznego „command and control” z terminologii malware. Różnica wobec tradycyjnego prompt injection jest istotna. Klasyczny atak pośredni jest reaktywny – atakujący podkłada payload na stronie albo w dokumencie i czeka, aż ktoś poprosi AI o jego przetworzenie. Ataki comment and control są proaktywne – samo otwarcie pull requestu lub utworzenie issue automatycznie uruchamia agenta AI w GitHub Actions, bez żadnej akcji ze strony ofiary.

Jedynym częściowym wyjątkiem jest Copilot Agent, gdzie ktoś musi ręcznie przypisać issue do agenta. Ale skoro złośliwe instrukcje są ukryte w niewidocznym komentarzu HTML, osoba przypisująca zadanie nie ma szans ich zobaczyć.

To nie jest teoria. Łącznie badacze wykazali możliwość kradzieży kluczy API Anthropica i Google, wielu tokenów GitHuba oraz dowolnych sekretów przechowywanych w środowisku GitHub Actions – w tym zdefiniowanych przez użytkownika sekretów repozytorium i organizacji.

GitHuB AI Ataki prompt injection

Cisza zamiast ostrzeżeń – i dlaczego to problem

Wszystkie trzy firmy wypłaciły bounty. Żadna nie przydzieliła numeru CVE. Żadna nie opublikowała publicznego advisory. Guan nie ukrywa frustracji – i trudno mu się dziwić. Część użytkowników ma przypięte starsze, podatne wersje tych narzędzi. Bez oficjalnego ostrzeżenia mogą nigdy nie dowiedzieć się, że ich pipeline CI/CD jest zagrożony.

To szerszy problem branży. Według raportu Cisco State of AI Security z 2026 roku, 83% organizacji planuje wdrożenie agentów AI, ale tylko 29% czuje się gotowych do ich bezpiecznego uruchomienia. OWASP umieścił prompt injection na pierwszym miejscu swojej listy Top 10 zagrożeń dla aplikacji LLM, a nowa lista OWASP Top 10 for Agentic Applications na 2026 rok wprowadza pojęcie „least agency” – minimalnych uprawnień dla agentów AI.

Skala problemu w liczbach? Systematyczna analiza 78 badań opublikowana w styczniu 2026 roku wykazała, że każdy testowany agent programistyczny – Claude Code, GitHub Copilot, Cursor – jest podatny na prompt injection, a skuteczność adaptacyjnych ataków przekracza 85%.

Jak się chronić – i dlaczego agenty AI to pracownicy, nie narzędzia

Rekomendacja Guana brzmi prosto, ale wymaga zmiany myślenia: traktuj agenta AI jak pracownika, nie jak skrypt. Jeśli agent do code review nie potrzebuje dostępu do basha – nie dawaj mu basha. Jeśli jego zadaniem jest podsumowywanie issues – nie potrzebuje uprawnień do zapisu w repozytorium. Zasada need-to-know, znana z bezpieczeństwa informacji od dekad, wreszcie musi trafić do świata AI.

Konkretne kroki? Po pierwsze – sprawdź, jakie uprawnienia mają Twoje agenty AI w GitHub Actions. Usuń każdy dostęp, który nie jest absolutnie niezbędny. Po drugie – jeśli używasz Claude Code Security Review, Gemini CLI Action albo Copilota w automatycznych workflow, upewnij się, że masz najnowszą wersję. Po trzecie – włącz opcję „Require approval for all external contributors” w ustawieniach repozytorium, żeby workflow nie uruchamiały się automatycznie na PR-ach od nieznanych osób. Po czwarte – monitoruj komentarze botów w swoich repozytoriach. Jeśli bot publikuje coś dziwnego w odpowiedzi na PR, to może być właśnie wyciek.

Meta zaproponowała w październiku 2025 roku framework „Rule of Two” – agent może spełniać najwyżej dwa z trzech warunków: (A) przetwarza niezaufane dane wejściowe, (B) ma dostęp do wrażliwych danych, (C) może zmieniać stan zewnętrznych systemów. Jeśli spełnia wszystkie trzy – masz problem. I szczerze? Większość agentów AI w GitHub Actions spełnia wszystkie trzy.

Kiedy zaufanie do automatyzacji staje się ryzykiem

Ta historia odsłania coś więcej niż lukę w trzech narzędziach. Pokazuje fundamentalny problem ery agentów AI – daliśmy maszynom klucze do naszych systemów, zanim nauczyliśmy się zabezpieczać przed ich manipulacją. Modele językowe z definicji nie potrafią odróżnić instrukcji od danych. OWASP przyznaje to wprost – „biorąc pod uwagę stochastyczną naturę generatywnego AI, w pełni skuteczne metody zapobiegania pozostają niejasne”.

Dla polskich zespołów deweloperskich, które coraz częściej korzystają z agentów AI w procesie CI/CD, to sygnał ostrzegawczy. Zwłaszcza że pełne obowiązki wynikające z unijnego AI Act wchodzą w życie 2 sierpnia 2026 roku – a organizacje wdrażające agentów AI będą musiały wykazać zgodność z wymogami bezpieczeństwa. 100 dolarów bounty za krytyczną lukę to żart. Ale prawdziwy żart polega na tym, że użytkownicy tych narzędzi wciąż mogą nie wiedzieć, że ich sekrety były – lub są – zagrożone.

Guan opublikuje pełne szczegóły techniczne ataku w czwartek na swoim blogu. Jeśli korzystasz z agentów AI na GitHubie – nie czekaj na oficjalne ostrzeżenie, które może nigdy nie nadejść:

 https://oddguan.com/blog/comment-and-control-prompt-injection-credential-theft-claude-code-gemini-cli-github-copilot

Źródła

  1. Agents hooked into GitHub can steal creds – but Anthropic, Google, and Microsoft haven’t warned users
  2. Comment and Control: Prompt Injection Credential Theft in Claude Code, Gemini CLI, and GitHub Copilot
  3. OWASP Top 10 for Agentic Applications 2026

 

Podziel się artykułemFacebookXBlueskyWykopTelegram
Arycjusz

Piszę o technologii, cyberbezpieczeństwie i sztucznej inteligencji w CyberImpuls. Skomplikowane tematy tłumaczę prostym językiem, bez zbędnego żargonu. Najbardziej kręcą mnie nowe modele AI, prywatność w sieci i sprzęt, który realnie zmienia codzienność. Prywatność traktuję serio w sieci i u siebie. Dlatego piszę pod jednym, stałym podpisem.

https://cyberimpuls.pl