
GhostApproval: Sześciu asystentów AI do kodowania poprosiło o pozwolenie i wskazało niewłaściwy plik
- OrcaNOWOŚĆOrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-29101 tok/s
- OrcaNOWOŚĆOrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 za 1 mln tokenów · 103 tok/s
- OrcaNOWOŚĆOrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 za 1 mln tokenów · 291 tok/s
- OrcaNOWOŚĆOrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 za 1 mln tokenów · 94 tok/s
- MoonshotNOWOŚĆMoonshotAI: Kimi K3.1 Pro2026-10-2446Inteligencja
- OrcaNOWOŚĆOrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 za 1 mln tokenów · 107 tok/s
- minimaxNOWOŚĆMiniMax: M3.1 Flash2026-10-1929Inteligencja
- OrcaNOWOŚĆOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 za 1 mln tokenów · 71 tok/s
- deepseekNOWOŚĆDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733Inteligencja
- DeepSeekNOWOŚĆDeepSeek: DeepSeek V4.1 Flash2026-10-1740Inteligencja
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 za 1 mln tokenów · 96 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955Inteligencja
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854Inteligencja
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 za 1 mln tokenów · 170 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228Inteligencja
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Inteligencja
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Inteligencja
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2127Inteligencja
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2130Inteligencja
- xAIGrok 4.72026-09-2134Inteligencja
8 lipca 2026 r. firma zajmująca się bezpieczeństwem Wiz opublikowała GhostApproval, wynik badania, w którym link symboliczny umieszczony w repozytorium sprawił, że sześć asystentów AI do kodowania zapisywało poza swoim obszarem roboczym — do ~/.ssh/authorized_keys, co zapewnia trwały dostęp SSH bez hasła, lub do ~/.zshrc, który uruchamia się przy następnym starcie powłoki — podczas gdy okno potwierdzenia wskazywało jedynie nieszkodliwy plik, za który podszywał się link. Wiz przetestowała Amazon Q Developer, Claude Code firmy Anthropic, Augment, Cursor, Google Antigravity i Windsurf i zgłosiła ten wzorzec we wszystkich sześciu. Nie zgłoszono żadnego wykorzystania w rzeczywistym środowisku: praca jest demonstracją proof-of-concept, a wpis w archiwum nie odnotowuje żadnych rzeczywistych szkód. Trzej dostawcy wydali poprawki, dwóch potwierdziło zgłoszenie, a następnie przestało odpowiadać, a jeden zakwestionował, że to zachowanie w ogóle jest podatnością. W Orca AI Incident Archive znajduje się pełny zapis dotyczący tego odkrycia wraz z innymi wpisami zarejestrowanymi pod jego tagiem typu SANDBOX.
Sam prymityw to stara historia. Podążanie za dowiązaniami symbolicznymi, sklasyfikowane jako CWE-61, od dziesięcioleci jest prymitywem ataku — Wiz wymienia wcześniejsze zastosowania w warunkach wyścigu, menedżerach pakietów i ucieczkach z kontenerów — a każde z nich polegało na tym, że narzędzie zapisywało do ścieżki kontrolowanej przez użytkownika bez uprzedniego jej rozwiązania. Tym, co sprawiło, że to odkrycie zasługiwało na nazwę, jest druga warstwa: w kilku produktach samo rozumowanie asystenta wskazywało niebezpieczne miejsce docelowe, a prompt pokazywany człowiekowi ukrywał je. Wiz klasyfikuje to jako CWE-451, zniekształcanie krytycznych informacji w interfejsie użytkownika. Granica bezpieczeństwa istniała. Informacji potrzebnych człowiekowi do skorzystania z niej nie było.
Jak działa ta sztuczka i na czym się kończy
Złośliwe repozytorium Wiz jest celowo nudne. Zawiera dowiązanie symboliczne o nazwie project_settings.json, które wskazuje na plik autoryzowanych kluczy SSH dewelopera, a także README instruujący agenta, aby zaktualizował tę „config” podczas przygotowywania obszaru roboczego. Gdy deweloper poprosi asystenta o zastosowanie się do README, agent podąża za linkiem i zapisuje klucz publiczny atakującego. Jeśli na maszynie działa usługa SSH, do której atakujący ma dostęp, od tego momentu jest to logowanie bez hasła. Drugi wariant kieruje tę samą przynętę na ~/.zshrc, więc ładunek zostanie wykonany przy następnym otwarciu terminala i dostęp SSH w ogóle nie będzie potrzebny.
Opis awarii technicznej podany przez Wiz jest krótki: piaskownica, jeśli w ogóle występuje, nie weryfikuje ścieżki kanonicznej, więc zapis skierowany do wnętrza projektu trafia tam, gdzie wskazuje dowiązanie. Proof of concept firmy odtworzył ten problem w „6 najpopularniejszych asystentach AI do kodowania”, według jej własnego sformułowania, i opublikowała zrzuty ekranu dla każdego z nich. Grupa dotkniętych to każdy, kto otwiera w jednym z tych narzędzi repozytorium, którego nie jest autorem — co w normalnym workflow deweloperskim obejmuje projekty forkowane, zależności zewnętrzne oraz wszelkie przeglądy kodu gałęzi zewnętrznego współtwórcy.
Okno dialogowe, które wskazało niewłaściwy plik
Najwyraźniejsze dowody pochodziły z Claude Code. W teście Wiza rozumowanie agenta zawierało – według cytatu firmy – stwierdzenie: „Widzę, że project_settings.json jest w rzeczywistości plikiem konfiguracyjnym zsh”. Monit o uprawnienia, który zobaczył użytkownik, brzmiał: „Czy wprowadzić tę zmianę w project_settings.json?”. Agent wiedział, dokąd trafi zapis; osoba, która go autoryzowała, nie wiedziała. Wiz nazywa wynikającą z tego zgodę „w istocie pustą”, a kontrolę z udziałem człowieka – pieczątką.
Trzy produkty sprawiły, że luka była gorsza niż zła etykieta. Windsurf zapisał plik na dysk zanim pojawiły się przyciski Akceptuj i Odrzuć, więc okno dialogowe było propozycją cofnięcia, a nie bramą autoryzacji — zanim użytkownik mógł odmówić, według Wiz klucz już był na miejscu. Amazon Q Developer pokazał tę samą kolejność, oferując tylko przycisk Cofnij po zapisie. Augment nie zapytał o nic: Wiz zademonstrował odczyt przez dowiązanie symboliczne, który ujawnił w transkrypcie czatu fałszywy plik poświadczeń AWS spoza projektu, oraz zapis przez dowiązanie symboliczne do ~/.ssh/authorized_keys bez jakiegokolwiek okna dialogowego. Z drugiej strony Cursor i Google Antigravity wyświetliły nierozwiązaną ścieżkę i poprosiły o kliknięcie, które autoryzowało rozwiązaną.
Pierwszy test Wiz odbył się 10 lutego 2026 r., a raporty rozesłano między 12 lutego a 5 marca. Jego harmonogram ujawniania odnotowuje potwierdzenia: Anthropic 15 lutego, Augment 24 lutego, Google 26 lutego, Cursor 2 marca, AWS 6 marca oraz Cognition, która jest właścicielem Windsurf, 23 czerwca. Publiczne ujawnienie nastąpiło około pięć miesięcy po pierwszym raporcie.

Sześciu dostawców, trzy odpowiedzi
Wiz ocenia odkrycia według własnej skali ważności, od poziomu High w AWS po Critical w Augment, Cursor, Google Antigravity i Windsurf. Trzech dostawców uznało raport za podatność i wydało poprawkę. Archiwum ocenia ten wpis jako wysoką ważność i A pod względem pewności, a główne biuletyny zgadzają się z Wiz co do mechanizmu.
• Amazon Web Services. Wysoka waga, śledzona jako CVE-2026-12958 i poprawiona w Language Servers for AWS 1.69.0. Własny komunikat AWS 2026-047-AWS, opublikowany 23 czerwca 2026 r., potwierdza „problem braku walidacji dowiązań symbolicznych” przed 1.69.0 i wymienia minimalne kompilacje wtyczek zawierające poprawkę: Amazon Q Developer dla Visual Studio Code 2.20, dla JetBrains 4.3, dla Eclipse 2.7.4 oraz AWS Toolkit z Amazon Q dla Visual Studio 1.94.0.0. Stwierdza, że nie ma obejść, że serwer językowy aktualizuje się automatycznie, chyba że konfiguracja sieci temu zapobiega, i dziękuje Wiz za skoordynowane ujawnienie. Wpis CNA ocenia to zagadnienie na 8,5 w CVSS 4.0 i 7,8 w CVSS 3.1.
• Cursor.Krytyczny, śledzony jako CVE-2026-50549 i naprawiony w Cursor 3.0. Wpis został opublikowany przez GitHub jako CNA 25 czerwca 2026 r. z oceną 9,3 w CVSS 4.0. Jego opis przedstawia atakującego nieco inaczej niż relacja Wiz dotycząca repozytorium: złośliwy agent tworzy dowiązanie symboliczne w obszarze roboczym i wymusza niepowodzenie kanonizacji ścieżki, albo ponieważ obiekt docelowy nie istnieje, albo ponieważ ścieżce odebrano uprawnienia do odczytu, po czym zapis cofa się do pierwotnej ścieżki bez zatwierdzenia i może nadpisać pomocnik sandboxa w celu wykonania poza sandboxem.
• Google.Wiz ocenia Antigravity jako krytyczne i odnotowuje poprawkę jako wersję 1.19.6, wdrożoną 22 maja 2026 r. W kolumnie dotyczącej ważności widnieje „Oczekuje”, a według relacji Wiz Google oceniał, czy wystawić CVE; w publicznym rejestrze nie pojawia się żaden identyfikator CVE dla Antigravity.
• Augment.Krytyczny według oceny Wiz, przetestowany na wersji 0.754.3, potwierdzony 24 lutego 2026 i niezałatany w momencie publikacji. Notatka badawcza Cloud Security Alliance dotycząca tego odkrycia odnotowuje kontrargument Augment, że agent działa przy użyciu poświadczeń samego użytkownika.
• Windsurf.Krytyczny według oceny Wiz, przetestowany na kompilacji V1.9566, potwierdzony przez Cognition 23 czerwca 2026 r. i bez poprawki w momencie publikacji.
• Anthropic. Zakwestionowane. Brak CVE, a przetestowana wersja Claude Code, 2.1.42, znajduje się w tabeli Wiz ze statusem „Odrzucony”.

Odrzucenie przez Anthropic i poprawka, która powstała przed raportem
Odpowiedź Anthropica dla Wiz była przemyślaną odmową. „Wykracza to poza nasz obecny model zagrożeń” – napisała firma, według cytatu Wiz. „Gdy użytkownik po raz pierwszy uruchamia Claude Code w katalogu, musi potwierdzić, że ufa temu katalogowi, zanim rozpocznie sesję. Opisany przez Państwa scenariusz polega na tym, że użytkownik wyraźnie potwierdza monit o uprawnienia w katalogu zawierającym złośliwe dowiązanie symboliczne, co wykracza poza model zagrożeń Claude Code”. Zgłoszenie zostało zamknięte jako „Informative”.
To rozumowanie ma spójną konstrukcję: użytkownik zaufał katalogowi, następnie zatwierdził operację, więc oba momenty zgody zostały uszanowane. Riposta Wiz brzmi: świadoma zgoda wymaga rzetelnych informacji — zatwierdzenie project_settings.json, podczas gdy zapis trafia do ~/.ssh/authorized_keys, jest formalnie decyzją, a w istocie pustą. Wiz nie twierdzi, że rozstrzygnął, które stanowisko jest słuszne; nie robi tego również ten artykuł. Praktyczna obserwacja jest taka, że AWS, Google i Cursor przyjęły odmienne stanowisko i wprowadziły poprawki.
Wiz poinformował również, że Claude Code zmieniło się w trakcie sporu: obecne wersje, jak napisała firma, rozwiązują dowiązania symboliczne i ostrzegają przed zapisem do wrażliwych plików, oraz zauważył, że Anthropic odmówiła powiedzenia, czy ma to związek z raportem. 7 lipca 2026 r. Anthropic przekazała korektę, którą zacytował Wiz: „Ostrzeżenie o dowiązaniach symbolicznych w oknie uprawnień Edycja/Zapis pojawiło się w wersji v2.1.32 (5 lutego 2026 r.), dziewięć dni przed przesłaniem nam tego raportu. Zostało dodane w ramach proaktywnego wzmacniania bezpieczeństwa opartego na przeglądzie wewnętrznym. Odmowa komentarza była automatyczną odpowiedzią z naszego systemu triage”.
Zgodność czasowa wersji się zgadza; publiczny zapis tego, co się zmieniło, już nie. Claude Code 2.1.32 opublikowano w rejestrze npm 5 lutego 2026 o 17:03 UTC, czyli dziewięć dni przed raportem z 14 lutego, dokładnie tak, jak twierdzi Anthropic. Jednak publiczny wpis w dzienniku zmian dla tego wydania wymienia dwanaście zmian, w tym zespoły agentów, rejestrowanie pamięci i kilka poprawek UI, a żadna z nich nie wspomina o dowiązaniach symbolicznych ani okienkach dialogowych uprawnień. Pierwsze wiersze dziennika zmian opisujące dokładnie to zachowanie pojawiają się znacznie później: wersja 2.1.280, opublikowana w npm 22 września 2026, odnotowuje „Naprawiono ocenianie zapisów przez ścieżkę będącą dowiązaniem symbolicznym według ich zapisu w drzewie: monit wskazuje, gdzie trafia zapis”, a 2.1.287 z 1 października 2026 odnotowuje, że zapis powłoki przez zatwierdzone w repozytorium dowiązanie symboliczne do wrażliwego pliku wskazuje teraz, gdzie trafia, i czeka na osobę. Obserwacja samego Wiza, że wersja 2.1.173 i późniejsze rozwiązują dowiązania symboliczne, również pojawia się po raporcie, ponieważ 2.1.173 wydano 11 czerwca 2026.
Co jest ustalone, a co nie
• Potwierdzone. Mechanizm: wabik w postaci dowiązania symbolicznego w repozytorium, agent, który za nim podąża, zapis, który trafia poza obszar roboczy, oraz powierzchnia potwierdzenia, która wskazuje niewłaściwą ścieżkę. Wiz odtworzył to we wszystkich sześciu produktach i opublikował zrzuty ekranu. Istnieją dwa rekordy CVE, opublikowane przez ich CNA, a komunikat AWS niezależnie potwierdza lukę w wersjach poniżej 1.69.0 oraz poprawkę. Anthropic nie kwestionuje, że takie zachowanie wystąpiło; kwestionuje natomiast, że jest to podatność.
• Z jednego źródła. Oceny dotkliwości dla Augment, Windsurf i Google Antigravity są osądami Wiz, a nie wynikami CNA, ponieważ dla żadnego z tych trzech nie opublikowano CVE. Twierdzenie, że Windsurf i Amazon Q zapisują przed pojawieniem się okna dialogowego, opiera się na zrzutach ekranu i narracji Wiz; żaden dostawca nie potwierdził publicznie tej kolejności.
• Sporny.Czy narzędzie powinno zapewniać użytkownikowi ochronę przed zwodniczą przestrzenią roboczą, czy też zaufanie do katalogu plus kliknięcie rozstrzyga kwestię. Anthropic twierdzi, że to drugie; Wiz twierdzi, że wyświetlony przez nie monit sprawił, że kliknięcie straciło znaczenie. Archiwum nie oznacza wpisu jako spornego: fakty są zgodne, a sporna jest tylko interpretacja.
• Nie ustalono. Czy Augment i Windsurf naprawiły tę lukę od czasu publikacji. Wszystkie materiały przeanalizowane na potrzeby tego tekstu, w tym notatka Cloud Security Alliance z 15 lipca 2026 r., wciąż opisują oba narzędzia jako nienaprawione; nie znaleziono żadnego publicznego komunikatu o poprawce od któregokolwiek z dostawców.
Sama data kryje w sobie drobną komplikację. Post Wiz oraz oś czasu ujawnienia podają 8 lipca 2026 r., Infosecurity Magazine opisuje proof of concept jako opublikowany 7 lipca, a swój własny raport — 9 lipca, natomiast wpis w archiwum jest datowany na 9 lipca 2026 r. z dokładnością do dnia. Ustalenie, relacje i archiwum nie różnią się co do tygodnia; różnią się co do dnia o maksymalnie dwa dni.
Wcześniejsze prace nad jedną z tych sześciu zasługują na odrębne uznanie. Evan Schuman z CSO Online, pisząc 9 lipca 2026 r., zauważył, że Cato Networks zgłosiło wersję tej luki dotyczącą wyłącznie Cursor przed szerszym badaniem Wiz. Relacja SecurityWeek dotycząca tych badań, opublikowana 3 lipca 2026 r., nazywa ją DuneSlide, przypisuje parze CVE-2026-50548 i CVE-2026-50549, ocenia obie na 9,8 i datuje wydanie Cursor 3.0, które je naprawiło, na 2 kwietnia — liczby, które nie zgadzają się z harmonogramem Wiz, według którego publikacja poprawki dla Cursor przypadła na 5 czerwca, ani z rekordem CNA opublikowanym 25 czerwca z oceną 9,3. Oceny 9,8 i 9,3 pochodzą od dwóch różnych oceniających tej samej luki; daty kwietniowa i czerwcowa mogą opisywać odpowiednio wydanie i komunikat doradczy, a nie wyrażać sprzeczności co do terminu wydania poprawki.
Co się potem zmieniło?
Konkretnie: użytkownicy Amazon Q Developer zostali przeniesieni do serwera językowego 1.69.0, w większości konfiguracji automatycznie; użytkownicy Google Antigravity do wersji 1.19.6 od 22 maja 2026 r.; użytkownicy Cursor do wersji 3.0; a użytkownicy Claude Code do wersji, która rozwiązuje linki, przy czym dalsze zmiany dotyczące wierności promptów pojawią się w wersjach 2.1.280 i 2.1.287 we wrześniu i październiku 2026 r. Użytkownicy Augment i Windsurf, na podstawie dowodów dostępnych w chwili publikacji, otrzymali datę, na którą warto uważać, i nic więcej.
Rekomendacje samego Wiz były wąskie i techniczne: rozwiązywać dowiązania symboliczne przed wyświetleniem monitu, wyraźnie ostrzegać, gdy rozwiązana ścieżka wykracza poza obszar roboczy, i nigdy nie zapisywać na dysku przed wyraźną zgodą, aby okno dialogowe było bramką, a nie przyciskiem cofania. Uwaga Cloud Security Alliance dodaje ramy zarządzania — traktować asystentów kodowania jako uprzywilejowane oprogramowanie z dostępem do systemu plików, a nie jako wtyczki edytora, oraz pytać dostawców bezpośrednio, czy ścieżki są rozwiązywane, zanim pojawi się potwierdzenie. Katie Norton z IDC, cytowana przez CSO Online, umieściła ryzyko szczątkowe tam, gdzie łańcuch dostaw już funkcjonuje: u zewnętrznych współtwórców, w rozwidlonych repozytoriach i zależnościach zewnętrznych, „a nie w kodzie tworzonym wewnętrznie”.
Otwarta pozostaje kwestia projektu, a nie błąd. Sześć niezależnie zbudowanych produktów zbiegło się na tej samej sekwencji — pokaż żądaną ścieżkę, zaufaj kliknięciu — a późniejsze rozbieżności dotyczyły odpowiedzialności, a nie mechanizmu. Wpis w archiwum ma flagę landmark, co jest osądem archiwum, że rekord opisuje kategorię, a nie błąd pojedynczego dostawcy, i trudno się nie zgodzić z tą interpretacją: ten sam krótki proof of concept zadziałał sześć razy.

