Nowości

Luka GhostApproval dotyczy sześciu popularnych asystentów kodowania AI

ProgramowaniePatryk Raba

Posłuchaj tego artykułu

Badacze z Wiz odkryli systemową lukę pozwalającą złośliwemu repozytorium oszukać agenta AI za pomocą dowiązań symbolicznych i podmienić poufne pliki, w tym klucze SSH. Problem dotyczy Claude Code, Cursora, Amazon Q Developer i trzech innych narzędzi.

Spis treści
  1. Jak działa atak
  2. Fałszywe okno zgody użytkownika
  3. Reakcje dostawców są bardzo różne
  4. Co to znaczy dla programistów w Polsce

Zespół badawczy firmy Wiz opisał 8 lipca 2026 roku lukę nazwaną GhostApproval, która dotyczy sześciu najpopularniejszych asystentów kodowania opartych na sztucznej inteligencji. Wystarczy, że programista poprosi agenta o pomoc przy pracy nad złośliwie spreparowanym repozytorium, a narzędzie może bez wiedzy użytkownika nadpisać pliki poza obszarem roboczym, w tym klucze dostępu SSH.

Jak działa atak

Mechanizm opiera się na klasycznym błędzie uniksowym określanym jako CWE-61, czyli podążaniu za dowiązaniem symbolicznym. Atakujący umieszcza w repozytorium plik, który z pozoru wygląda jak zwykły plik konfiguracyjny, na przykład project_settings.json, ale w rzeczywistości jest linkiem wskazującym na wrażliwą lokalizację, choćby plik authorized_keys w katalogu .ssh użytkownika.

Kiedy programista prosi agenta o edycję lub przegląd takiego pliku, narzędzie podąża za dowiązaniem i zapisuje tam treść kontrolowaną przez atakującego, na przykład własny klucz publiczny SSH, co w praktyce daje mu zdalny dostęp do maszyny ofiary. Cały proces omija sandbox, w którym agent miał teoretycznie działać w izolacji od reszty systemu plików.

Fałszywe okno zgody użytkownika

Drugim elementem problemu jest błąd oznaczony jako CWE-451, czyli wprowadzające w błąd przedstawienie interfejsu. Badacze Wiz pokazali, że w testach Claude Code wewnętrzne rozumowanie modelu poprawnie rozpoznawało, iż plik project_settings.json w rzeczywistości jest konfiguracją powłoki zsh, ale okno potwierdzenia pokazywane użytkownikowi pytało jedynie 'Wprowadzić tę zmianę w project_settings.json?', bez żadnej wzmianki o prawdziwym celu operacji.

To nie jest zbiór pojedynczych błędów, tylko pytanie o kategorię projektową, z którą branża asystentów kodowania AI jeszcze się nie rozliczyła - Wiz Research

Innymi słowy, nawet gdy model sam wie, że coś jest nie tak, interfejs pokazywany człowiekowi nie oddaje tej wiedzy, więc zgoda, którą wydaje programista klikając 'zatwierdź', nie jest zgodą świadomą.

Reakcje dostawców są bardzo różne

Amazon i Cursor zareagowały najszybciej, wydając własne numery CVE i publikując łatki, odpowiednio w wersji 1.69.0 Language Server oraz 3.0 Cursora. Google potwierdziło problem w Antigravity i wdrożyło poprawkę w wersji 1.19.6, a proces przyznania numeru CVE wciąż trwa.

Anthropic początkowo odrzuciło zgłoszenie jako leżące poza modelem zagrożeń firmy, argumentując, że użytkownik świadomie wskazuje zaufany katalog przed rozpoczęciem sesji z Claude Code. Mimo to w kolejnych wydaniach, od wersji 2.1.32, dodano rozpoznawanie dowiązań symbolicznych i ostrzeżenia dla użytkownika. Augment i Windsurf pozostają bez poprawki mimo miesięcy od zgłoszenia.

Co to znaczy dla programistów w Polsce

Dla polskich zespołów korzystających z agentowych narzędzi programistycznych wniosek jest prosty: praca nad nieznanym lub niezaufanym repozytorium, na przykład forkiem z GitHuba czy paczką od zewnętrznego kontraktora, powinna odbywać się w odizolowanym środowisku, a nie na maszynie z dostępem do kluczy produkcyjnych. Warto też sprawdzić, czy używana wersja narzędzia ma już poprawkę, bo w przypadku Augment i Windsurf luka wciąż jest otwarta.

Sprawa pokazuje też szerszy problem agentowego kodowania: im więcej autonomii dostaje model przy dostępie do systemu plików, tym trudniej zaprojektować interfejs zgody, który rzeczywiście informuje użytkownika o skutkach jego kliknięcia. Wiz zapowiada dalsze testy podobnych narzędzi pod kątem tej samej klasy błędów.

Źródła: GhostApproval: AI Coding Assistant Trust Boundary Flaw (wiz.io), AI coding agents expose GhostApproval sandbox bypass (letsdatascience.com)

Udostępnij: