Nowości
Luka GhostApproval pozwala oszukać sześciu głównych asystentów kodujących AI

Firma badawcza Wiz opisała lukę nazwaną GhostApproval, która dotyczy sześciu popularnych asystentów kodujących opartych na AI. Wystarczy spreparowane repozytorium z dowiązaniem symbolicznym, by nakłonić narzędzie do zapisania danych poza katalogiem projektu, na przykład do pliku z autoryzowanymi kluczami SSH.
Jak działa atak
Mechanizm opisany przez Wiz jest prosty w konstrukcji, choć skuteczny. Atakujący tworzy repozytorium zawierające plik wyglądający jak zwykła konfiguracja, na przykład project_settings.json, który w rzeczywistości jest dowiązaniem symbolicznym wskazującym na wrażliwy plik systemowy, taki jak ~/.ssh/authorized_keys.
W pliku README znajduje się instrukcja proszącą asystenta AI o dopisanie jednej linijki do owego pozornego pliku konfiguracyjnego. Agent, nie sprawdzając rzeczywistej, kanonicznej ścieżki docelowej symlinku, wykonuje polecenie i dopisuje klucz SSH atakującego do listy autoryzowanych kluczy ofiary, otwierając tylnymi drzwiami dostęp do jej maszyny.
Puste zgody użytkownika
Drugim, równie poważnym elementem luki jest sposób prezentowania próśb o zgodę. W kilku narzędziach agent poprawnie rozwiązywał ścieżkę docelową symlinku wewnętrznie, ale okno dialogowe pokazywane użytkownikowi wyświetlało tylko nieszkodliwą nazwę pliku źródłowego. Deweloper klikał akceptację edycji, której realnego skutku nie widział.
Użytkownik zatwierdza to, co uważa za nieszkodliwą, lokalną zmianę, a agent zapisuje dane w wrażliwym pliku poza obszarem roboczym projektu - z opisu badaczy Wiz
To nie był błąd jednego dostawcy. To była luka na poziomie całej kategorii narzędzi kodujących AI - Wiz Research
Reakcje dostawców
Reakcje firm były zróżnicowane. Amazon uznał problem za lukę o wysokiej istotności, opublikował biuletyn bezpieczeństwa i naprawił ją w wersji 1.69.0 serwera językowego Q Developer. Cursor również potraktował zgłoszenie poważnie, wydając poprawkę w wersji 3.0 i publikując własny numer CVE. Google naprawiło problem w Antigravity i zaangażowało się w proces przyznawania CVE.
Augment i Windsurf potwierdziły otrzymanie zgłoszenia, ale do dnia publikacji nie wydały poprawek. W przypadku Windsurf agent zapisywał sfałszowane klucze SSH w systemie ofiary zanim jeszcze pojawiły się przyciski akceptacji lub odrzucenia, co czyniło okno dialogowe raczej mechanizmem cofania niż realną bramką autoryzacji.
Stanowisko Anthropic
Najbardziej wyróżniającą się reakcją była postawa Anthropic. Firma początkowo odrzuciła zgłoszenie, argumentując, że użytkownik, który zaufał katalogowi projektu i zatwierdził edycję, sam podjął tę decyzję, a scenariusz opisany przez Wiz wykracza poza przyjęty przez firmę model zagrożeń. Dopiero w kolejnych wersjach Claude Code, od 2.1.32 wzwyż, narzędzie zaczęło rozwiązywać symlinki przed pokazaniem monitu.
Dla polskich zespołów programistycznych korzystających z tych narzędzi luka oznacza konkretne ryzyko przy pracy z niezaufanym kodem zewnętrznym, na przykład podczas przeglądania cudzych repozytoriów open source albo wykonywania zadań agentowych na nieznanych projektach. Wiz rekomenduje rozwiązywanie symlinków przed wyświetleniem monitu o zgodę, jawne ostrzeganie, gdy ścieżka docelowa wykracza poza obszar roboczy, oraz niedopuszczanie do zapisu na dysku przed jednoznaczną autoryzacją.
Sprawa pokazuje szerszy problem branży agentów kodujących, w której tempo wdrażania nowych funkcji wyprzedza dojrzałość mechanizmów bezpieczeństwa. Firmy inwestujące w automatyzację pracy programistów będą musiały teraz częściej odpowiadać na pytania o granice zaufania między człowiekiem a agentem wykonującym operacje na plikach.
Źródła: GhostApproval: A Trust Boundary Gap in AI Coding Assistants (wiz.io), GhostApproval Symlink Flaws Could Let Malicious Repos Run Code in AI Coding Agents (thehackernews.com), GhostApproval Flaw Hits Six Major AI Coding Assistants (infosecurity-magazine.com)


