Nowości

Symlinki oszukują sześć asystentów AI do programowania, trzy wciąż bez łatki

ProgramowaniePatryk Raba
Symlinki oszukują sześć asystentów AI do programowania, trzy wciąż bez łatki
Fot. Tima Miroshnichenko, Pexels (Pexels License)
Spis treści
  1. Jak działa podmiana
  2. Które narzędzia ucierpiały
  3. Spór z Anthropic
  4. Co to oznacza dla programistów

Badacze z Wiz Research opisali technikę ataku nazwaną GhostApproval, która wykorzystuje symboliczne dowiązania plików do oszukania asystentów AI programujących w kodzie. Agent pokazuje w oknie zgody nazwę niewinnie wyglądającego pliku, a w rzeczywistości zapisuje dane w zupełnie innym, wrażliwym miejscu na dysku dewelopera.

Jak działa podmiana

Mechanizm opiera się na dziesiątki lat starej funkcji systemów uniksowych - dowiązaniach symbolicznych, czyli plikach, które w rzeczywistości wskazują na inną lokalizację. Atakujący przygotowuje repozytorium zawierające plik o nazwie project_settings.json, który technicznie jest symlinkiem prowadzącym do pliku ~/.ssh/authorized_keys, czyli listy kluczy SSH uprawnionych do logowania na konto ofiary.

Plik README w takim repozytorium instruuje asystenta AI, by "dopisał linijkę" do pozornie nieszkodliwego pliku konfiguracyjnego. Agent podczas analizy rozpoznaje, dokąd faktycznie prowadzi dowiązanie, ale w oknie z prośbą o zgodę pokazuje użytkownikowi wyłącznie nazwę symlinku, nie rzeczywisty cel zapisu.

Trzeba rozwiązać symlink i pokazać prawdziwy cel przed zapytaniem, oznaczyć każdy zapis wykraczający poza folder projektu i nigdy nie dotykać dysku, zanim użytkownik faktycznie nie zatwierdzi operacji - Wiz Research

Gdy deweloper klika "akceptuj", wierząc, że edytuje lokalny plik konfiguracyjny, zapis podąża za dowiązaniem i trafia do prawdziwego celu. W opisanym przez badaczy scenariuszu skutkuje to umieszczeniem klucza SSH atakującego w pliku autoryzacyjnym ofiary, co daje mu zdalny dostęp do maszyny bez hasła. Druga wersja ataku celuje w pliki startowe powłoki, na przykład ~/.zshrc, które wykonują się automatycznie przy każdym uruchomieniu terminala.

Które narzędzia ucierpiały

Wiz przetestowało technikę na sześciu szeroko używanych asystentach do programowania: Amazon Q Developer, Claude Code od Anthropic, Cursor, Google Antigravity, Augment oraz Windsurf. We wszystkich sześciu badacze potwierdzili, że okno zgody można doprowadzić do pokazania mylącej informacji, przez co potwierdzenie użytkownika przestaje pełnić funkcję realnej kontroli bezpieczeństwa.

Reakcje producentów były zróżnicowane. Amazon załatał lukę w Language Server w wersji 1.69.0 i przypisał jej numer CVE-2026-12958. Cursor naprawił problem w wersji 3.0 pod numerem CVE-2026-50549. Google potwierdziło błąd w Antigravity i wydało poprawkę, choć przypisanie CVE wciąż jest w toku. Augment oraz Windsurf potwierdziły otrzymanie zgłoszenia, ale do dnia publikacji raportu nie opublikowały poprawek.

Spór z Anthropic

Najbardziej nietypowo zareagował Anthropic. Firma początkowo uznała zgłoszenie za wykraczające poza przyjęty model zagrożeń dla Claude Code, odmawiając traktowania go jako luki bezpieczeństwa. Mimo to w wersji 2.1.32, wydanej w lutym 2026 roku - jeszcze przed formalnym zgłoszeniem przez Wiz 14 lutego - Anthropic wprowadził do narzędzia ostrzeżenia dotyczące symlinków, co część badaczy odczytuje jako ciche przyznanie problemu bez formalnej klasyfikacji jako podatność.

Badacze zwracają uwagę, że GhostApproval nie jest odosobnionym przypadkiem, a raczej powtarzającym się wzorcem architektonicznym w całej kategorii narzędzi. W maju 2026 roku firma Adversa AI opisała podobną technikę o nazwie SymJack, demonstrując tę samą lukę w innym zestawie agentów kodujących. Wskazuje to, że problem nie wynika z pojedynczego błędu konkretnego dostawcy, lecz z powszechnie przyjętego sposobu implementacji okien zgody w narzędziach AI.

Co to oznacza dla programistów

Dla polskich zespołów programistycznych korzystających z agentów kodujących kluczowy jest fakt, że atak nie wymaga żadnego przeglądu bezpieczeństwa ani specjalnych uprawnień - wystarczy sklonować złośliwe repozytorium i poprosić asystenta AI o pomoc przy jego konfiguracji. To codzienna czynność, którą deweloperzy wykonują wielokrotnie dziennie, często bez głębszej weryfikacji źródła kodu.

Do czasu wydania łatek przez Augment i Windsurf badacze zalecają ostrożność wobec repozytoriów z nieznanych źródeł oraz ręczną weryfikację, czy pliki wskazane w oknach zgody rzeczywiście znajdują się w katalogu projektu, a nie poza nim. Użytkownicy Amazon Q Developer, Cursor i Google Antigravity powinni jak najszybciej zaktualizować narzędzia do wersji zawierających poprawki.

Udostępnij: