Programista klonuje nieznane repozytorium, prosi agenta AI o konfigurację i widzi zgodę na zmianę pliku, który wygląda niewinnie. Problem w tym, że agent może wykonać operację inną niż ta pokazana w oknie zgody. Jeśli plik jest dowiązaniem symbolicznym, zapis może trafić poza workspace, na przykład do konfiguracji shella albo pliku dostępu SSH.

Agent AI do programowania w sandboxie z chronionymi sekretami poza granicą

To lekcja z GhostApproval, badania Wiz opublikowanego 8 lipca. Tego samego dnia AI Now Institute pokazał Friendly Fire, proof-of-concept zamieniający defensywne użycie Claude Code CLI i OpenAI Codex CLI w ścieżkę do zdalnego wykonania kodu. Razem te dwie publikacje pokazują, że narzędzia AI coding nie są już tylko autouzupełnianiem. W wielu zespołach są lokalnymi runtime'ami automatyzacji z dostępem do plików, shella, menedżerów pakietów, sieci, poświadczeń i decyzji review.

To nie znaczy, że nie wolno ich używać. Znaczy, że stary model zaufania jest za słaby. Narzędzie, które czyta nieufny tekst z repozytorium, uruchamia komendy, zmienia pliki i prosi człowieka o zgodę na streszczoną akcję, trzeba traktować jak runner CI, agent buildów albo uprzywilejowane rozszerzenie IDE.

Od asystenta do runtime'u

Pierwsze asystenty dopisywały linie kodu. Dzisiejsze agenty chodzą po repozytorium, otwierają pliki, wyciągają kroki instalacji, edytują kod, uruchamiają testy, instalują zależności i czasem ograniczają liczbę zgód. To ich zaleta. To też powierzchnia ataku.

Maszyna developera ma klucze SSH, poświadczenia cloud, tokeny pakietów, wewnętrzne repozytoria, sesje przeglądarki, VPN i konfigurację shella. Agent, który może tam pisać i uruchamiać polecenia, nie tylko podpowiada kod.

Dla podobnych systemów znamy już zasady: izolowane runnery, wąskie poświadczenia, reguły sieci, sandbox dla obcego kodu. Agenty AI potrzebują tego samego.

GhostApproval po ludzku

Według Wiz GhostApproval dotyczył sześciu asystentów: Amazon Q Developer, Anthropic Claude Code, Augment, Cursor, Google Antigravity i Windsurf. Technika używa dowiązań symbolicznych. Ścieżka wygląda jak plik projektu, ale wskazuje gdzie indziej. Jeśli narzędzie zapisze przez taki link, zmienia prawdziwy cel.

Wiz opisuje dwie warstwy: symlink following, CWE-61, oraz mylące przedstawienie krytycznej informacji w UI, CWE-451. W kilku przypadkach agent albo runtime znał prawdziwy cel, ale okno zgody nie pokazywało go jasno. Programista myślał, że zatwierdza lokalną zmianę.

Według Wiz AWS, Cursor i Google szybko naprawiły problem. Amazon Q Developer language server przed 1.69.0 jest oznaczony jako podatny i naprawiony w 1.69.0, CVE-2026-12958. Cursor przed 3.0 jest oznaczony jako podatny i naprawiony w 3.0, CVE-2026-50549. Augment i Windsurf były w toku w momencie publikacji. Anthropic odrzucił raport jako poza swoim threat model, według Wiz.

Status dostawców może się zmienić. Problem klasowy zostaje: jeśli UI pokazuje przyjazną ścieżkę, a runtime zapisuje gdzie indziej, zgoda człowieka niewiele znaczy.

Friendly Fire i review obcego kodu

Friendly Fire uderza w popularny scenariusz: agent ma sprawdzić obcą bibliotekę pod kątem bezpieczeństwa.

AI Now twierdzi, że PoC umożliwia remote code execution w Claude Code CLI i OpenAI Codex CLI podczas defensywnej oceny bibliotek open source lub firm trzecich. Według briefu atak nie potrzebuje złośliwego serwera MCP, pluginu ani hooka. Używa prompt injections rozrzuconych po zwykłych plikach źródłowych.

Nie trzeba publikować instrukcji ataku, żeby zrozumieć ryzyko. Repozytorium nie jest pasywnym wejściem. Jeśli agent czyta wrogi tekst i potem używa narzędzi, repozytorium staje się częścią kanału sterowania.

Zaufanie i przejrzystość

W tym samym tygodniu CNA opisało chińskie ostrzeżenie o ryzyku "security backdoor" w Claude Code. Anthropic przedstawił mechanizm jako ochronę antyabuzywną, sprawdzającą między innymi strefę czasową i sygnały proxy. To nie jest GhostApproval. To jednak ta sama rozmowa w firmach: co lokalny agent widzi, co wysyła, jak egzekwuje reguły i jak jasno vendor to opisuje?

Deweloperzy też o tym dyskutują. Wątek Hacker News o "Extended Thinking" w Claude Code miał setki komentarzy jeszcze przed tymi publikacjami. Nie dowodzi GhostApproval, ale pokazuje spór o to, czy widoczna warstwa narzędzia AI jest prawdą, streszczeniem czy interfejsem produktu.

Adopcja wyprzedziła kontrolę

Dark Reading przytacza GitLab 2026 AI Accountability Report: 91% organizacji używa dwóch lub więcej narzędzi coding, a 54% używa trzech lub więcej. Przytacza też dane SonarSource: 72% developerów, którzy spróbowali takich narzędzi, używa ich codziennie; 96% nie ufa wygenerowanemu kodowi bez zmian; tylko 48% zawsze sprawdza kod przed commitem.

To sygnały z ankiet, nie twarde prawo. Ale kierunek jest jasny. Firmy wdrożyły kilka asystentów, zanim zbudowały wspólny model kontroli. Jedno narzędzie w IDE, drugie w terminalu, trzecie w pull requestach. Każde ma inne zgody, sandbox, telemetrykę i logi.

Co zrobić teraz

Najpierw inwentaryzacja. Jakie narzędzia są dozwolone? Jakie wersje? Które mogą uruchamiać shell, edytować pliki, korzystać z sieci, czytać sekrety albo wywoływać MCP?

Wyłącz auto-approve i auto-review dla nieufnych repozytoriów. Kod z internetu, od dostawcy, kandydata, klienta albo podejrzanej zależności traktuj jako wrogi kontekst dla agenta.

Używaj środowisk jednorazowych: kontenerów, VM-ek developerskich albo ograniczonych cloud workstations. Bez prywatnych kluczy SSH, produkcyjnych credentials i długich tokenów, jeśli nie są konieczne.

Oddziel sekrety, ogranicz sieć i loguj działania. Potrzebne są zapisy tool calls, komend, zapisów plików, zgód, odmów i zdarzeń sieciowych. Sam transcript czatu nie wystarczy po incydencie.

Czego wymagać od vendorów

"Użytkownik zatwierdził" to za mało. Użytkownik musi zatwierdzić prawdziwą informację o operacji, która się wykona.

Produkty powinny pokazywać kanoniczne ścieżki, egzekwować granice workspace, bezpiecznie traktować symlinki, ostrzegać o celach zewnętrznych, mieć bezpieczne ustawienia dla obcych repozytoriów, jasny status CVE i audytowalne kontrole enterprise. Telemetria i anti-abuse też muszą być opisane prosto.

AI coding zostanie. Skorzystają zespoły, które przestaną traktować go jak autocomplete. Sandbox, wąskie credentials, ograniczona sieć, uczciwe zgody i logi.