Badacze z AIR opisali Plugin4Shell, lukę w sposobie, w jaki cztery agenty AI do programowania sprawdzają, czy wtyczka jest dokładnie tą wersją, którą zatwierdził marketplace, podał Help Net Security 18 września. Dotknięte narzędzia to Claude Code, Codex, GitHub Copilot i Gemini CLI. Ponieważ dwa z nich domyślnie aktualizują wtyczki w tle, raport stwierdza, że wtyczkę, która przeszła przegląd, można podmienić na wrogi kod bez żadnego działania programisty.
Tło
Agenci AI do programowania działają na własnym komputerze programisty, z dostępem do powłoki, systemu plików i zapisanych poświadczeń. Wtyczki rozszerzają ich możliwości, a marketplace'y przypinają każdą wtyczkę do konkretnego commita, tak by uruchamiany był dokładnie ten kod, który zatwierdził recenzent. Luka dotyczy tego przypięcia [1].
Co opisuje raport
Według raportu agenci nie sprawdzają, czy pobrany kod faktycznie odpowiada przypiętemu commitowi. Atakujący może utworzyć gałąź o nazwie zgodnej z hashem commita, tak że pobranie wskazuje na kod atakującego, a przypięcie nadal wygląda na nienaruszone. Raport zaznacza, że GitHub blokuje takie nazwy gałęzi, natomiast Bitbucket i serwery hostowane samodzielnie na nie pozwalają [1].
Raport określa lukę jako niewymagającą kliknięcia (zero-click), ponieważ to samo pobranie wykonywane jest ponownie podczas automatycznych aktualizacji w tle, które są domyślnie włączone w Claude Code i Codex. Atakujący może opublikować wtyczkę, która później stanie się wroga, albo przejąć istniejące repozytorium wtyczki. AIR podało, że znalazło 925 przejętych umiejętności, które w wyniku takich przejęć dotarły do 134 000 agentów [1].
Stan poprawek różni się w zależności od dostawcy. Anthropic naprawił Claude Code w wersji 2.1.179, a OpenAI naprawiło Codex w wersji 0.146.0. Microsoft nie wydał poprawki dla GitHub Copilot, a Google wycofał Gemini CLI i kieruje użytkowników do innego produktu, Antigravity. AIR podaje, że znalazło lukę w maju i zgłosiło ją dostawcom w czerwcu [1].
Znaczenie dla użytkowników Maca
Raport dotyczy narzędzi programistycznych na dowolnym desktopowym systemie operacyjnym i nie wyróżnia macOS. Narażeni są programiści, którzy korzystają z jednego z czterech agentów z wtyczkami z zewnętrznych marketplace'ów. Użytkownicy Maca, którzy nie korzystają z agentów do programowania, nie są dotknięci opisaną luką [1].
Zalecenia
- Zaktualizuj Claude Code do wersji 2.1.179 lub nowszej, a Codex do wersji 0.146.0 lub nowszej.
- Wyłącz automatyczne aktualizowanie wtyczek w tle, jeśli narzędzie na to pozwala, i aktualizuj wtyczki świadomie.
- Usuń wtyczki, z których aktywnie nie korzystasz, i wybieraj wtyczki hostowane w GitHub, gdzie według raportu sztuczka z nazwą gałęzi jest zablokowana.
- Jeśli używasz GitHub Copilot lub Gemini CLI, traktuj zewnętrzne wtyczki jako niezałatane narażenie, dopóki dostawca nie poinformuje inaczej.
Związek z FireAI
FireAI to sieciowa zapora dla macOS. Nie weryfikuje wtyczek, nie sprawdza pobrań z git i nie powstrzymuje agenta do programowania przed wykonaniem polecenia. Może natomiast pokazać i kontrolować połączenia, które następują potem: nowy proces bez reguły wywołuje w trybie Alert pytanie zawierające nazwę procesu i cel połączenia, a reguły dla aplikacji mogą ograniczyć, dokąd dane narzędzie może się łączyć.
Ograniczenia
Opis opiera się na jednym raporcie wtórnym. Nie podaje on, czy luka była wykorzystywana poza badaniami, ani nie wyjaśnia, w jaki sposób AIR ustaliło liczbę 925 przejętych umiejętności. Raport nie wskazuje, które systemy operacyjne testowano.
Wypróbuj FireAI od HisnLabs za darmo przez 17 dni.