Nowości
Luka GhostApproval pozwala przejąć komputer przez fałszywe potwierdzenie w edytorze AI
Posłuchaj tego artykułu

Badacze z Wiz opisali systemową lukę w sześciu popularnych agentach kodujących AI, w tym Cursor, Claude Code i Amazon Q, która przez symlinki pozwala nadpisać poufne pliki mimo pozornej zgody użytkownika.
Spis treści
Firma badawcza Wiz opisała 8 lipca podatność nazwaną GhostApproval, która dotyczy sześciu najpopularniejszych agentów kodujących opartych na AI. Mechanizm ataku wykorzystuje dziesiątki lat starą sztuczkę z linkami symbolicznymi, żeby ominąć okno zgody, które ma chronić użytkownika przed niebezpiecznymi zmianami na dysku.
Jak działa atak
Scenariusz jest prosty do odtworzenia. Atakujący przygotowuje repozytorium, w którym plik o niewinnej nazwie, na przykład project_settings.json, jest w rzeczywistości linkiem symbolicznym wskazującym na wrażliwą lokalizację systemową, choćby plik authorized_keys katalogu SSH albo plik startowy powłoki .zshrc. Do repozytorium dołączony jest README z instrukcją dla agenta AI, żeby zaktualizował ten pozornie zwyczajny plik konfiguracyjny.
Kiedy programista otwiera taki projekt i prosi asystenta o pomoc, agent odczytuje polecenie z README i przygotowuje edycję. Tu pojawia się sedno problemu: okno potwierdzenia pokazuje nazwę pliku źródłowego, czyli project_settings.json, a nie rzeczywistą ścieżkę, do której prowadzi symlink. Użytkownik klika zgodę, nie wiedząc, że w istocie autoryzuje nadpisanie kluczy SSH albo wstrzyknięcie złośliwego kodu do swojego środowiska powłoki.
Różnice między producentami
Analiza Wiz pokazała, że poszczególni dostawcy popełnili ten sam błąd na różne sposoby. Cursor wyświetlał w interfejsie diff ścieżkę symlinku, ale backend i tak po cichu zapisywał dane pod rzeczywistym celem. Windsurf był jeszcze gorszy, bo zapisywał plik na dysku przed pokazaniem przycisku zatwierdzenia, więc samo okno zgody było czystą kosmetyką, bo szkoda była już wyrządzona. Augment podążał za symlinkami zarówno przy odczycie, co pozwalało wykradać dane uwierzytelniające, jak i przy zapisie, bez jakiegokolwiek okna dialogowego.
Najbardziej niepokojący przypadek dotyczy Claude Code od Anthropic. Badacze zauważyli, że wewnętrzne rozumowanie agenta poprawnie rozpoznawało niebezpieczny cel operacji, ale finalny komunikat do użytkownika brzmiał tylko neutralnie, pytając, czy zastosować edycję do project_settings.json. Innymi słowy model wiedział, że coś jest nie tak, ale nie przekazał tej wiedzy dalej.
Wewnętrzne rozumowanie agenta wyraźnie rozpoznaje niebezpieczny cel, a mimo to okno potwierdzenia pokazywane użytkownikowi całkowicie ukrywa tę informację - badacze Wiz
Reakcje producentów
Amazon zareagował najbardziej systematycznie, wydając poprawkę w wersji 1.69.0 oraz oficjalny numer CVE. Google naprawił problem w Antigravity w wersji 1.19.6, uznając go za krytyczny. Cursor wydał wersję 3.0 z poprawką i własnym numerem CVE. Augment i Windsurf potwierdziły odbiór zgłoszenia, ale do dnia publikacji raportu nie opublikowały łatek.
Anthropic zajął stanowisko odmienne od reszty branży. Firma pierwotnie odrzuciła zgłoszenie, argumentując, że użytkownik, który zaufał katalogowi i zatwierdził prompt, ponosi odpowiedzialność za skutki. Mimo tego stanowiska od wersji 2.1.32, wydanej jeszcze przed publicznym ujawnieniem luki, Claude Code rozwiązuje symlinki i ostrzega przed zapisem do wrażliwych plików.
Co to znaczy dla programistów
GhostApproval trafia w słaby punkt całej kategorii narzędzi, nie pojedynczego produktu. Agenci kodujący zyskują coraz szerszy dostęp do systemu plików w imię wygody, a mechanizmy zgody, które mają to równoważyć, okazują się iluzoryczne, gdy interfejs pokazuje co innego niż faktycznie wykonywana operacja. Dla zespołów programistycznych w Polsce korzystających z Cursor, Claude Code czy Amazon Q oznacza to konieczność aktualizacji do najnowszych wersji i ostrożność przy otwieraniu nieznanych repozytoriów, zwłaszcza pobranych z publicznych źródeł czy dołączonych do zgłoszeń błędów.
Badacze Wiz podkreślają, że problem ma charakter systemowy, a nie incydentalny. Wynika z napięcia między rosnącą autonomią agentów AI a koniecznością zachowania rzetelnego nadzoru człowieka nad tym, co faktycznie dzieje się na jego komputerze. Historia symlinków jako wektora ataku sięga wczesnych dni Uniksa, ale dopiero teraz, w kontekście agentów AI z szerokimi uprawnieniami do systemu plików, ujawnia pełną skalę ryzyka.
Firmy planujące wdrożenie agentów kodujących na szerszą skalę powinny traktować okna zatwierdzania operacji jako element wymagający własnego audytu bezpieczeństwa, a nie jako gotowy mechanizm ochronny dostarczany przez producenta. Warto też ograniczać uprawnienia agentów do zapisu poza katalogiem roboczym projektu, tam gdzie to możliwe.
Ź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)

