Od dwóch tygodni wraca w naszych wpisach jeden motyw, za każdym razem z innej strony: halucynacja AI jako broń. DeepSeek wymyślił nowy wektor ataku, składając go z legalnych funkcji przeglądarki — halucynacja jako akt tworzenia. Agentowy ransomware JADEPUFFER zaszyfrował dane, zgubił klucz i zanotował nieistniejący backup — halucynacja jako przypadkowe zniszczenie. Dziś domykamy tę serię trzecim, najbardziej wyrachowanym wariantem. Bo w obu poprzednich przypadkach halucynacja była skutkiem ubocznym po stronie atakującego AI. HalluSquatting odwraca perspektywę: tu atakujący nie halucynuje niczego. Wykorzystuje to, że halucynuje AI ofiary — i robi to w sposób na tyle przewidywalny, że da się zająć z wyprzedzeniem.
Badacze z Uniwersytetu w Tel Awiwie, Technionu i firmy Intuit opisali technikę, którą nazwali adversarial hallucination squatting. Mechanizm jest niepokojąco prosty: modele językowe regularnie zmyślają nazwy nieistniejących pakietów, repozytoriów i bibliotek — i robią to nie losowo, lecz powtarzalnie, wymyślając te same fałszywe nazwy raz za razem. Atakujący ustala, jakie nazwy dany model halucynuje najczęściej, rejestruje je pierwszy, umieszcza pod nimi złośliwy kod — i czeka, aż agent AI sam po nie sięgnie, wykonując polecenie użytkownika.
Halucynacja przestaje być błędem, staje się adresem
Żeby zobaczyć, dlaczego to jest coś nowego, trzeba zrozumieć, czym ten atak różni się od klasycznego zatruwania łańcucha dostaw. W typowym ataku na pakiety napastnik podszywa się pod istniejącą, popularną bibliotekę — literówką w nazwie, przejętym kontem opiekuna, złośliwą aktualizacją. Zawsze punktem wyjścia jest coś, co realnie istnieje i czego ludzie używają. HalluSquatting nie potrzebuje niczego istniejącego. Punktem wyjścia jest coś, co model zmyśla — nazwa, która nie odpowiada żadnemu prawdziwemu zasobowi, dopóki atakujący jej nie utworzy.
Przebieg jest następujący. Użytkownik prosi agentowe narzędzie — Cursor, Windsurf, GitHub Copilot, Cline, Gemini CLI czy inny asystent kodujący — o coś rutynowego: „sklonuj to repozytorium", „zainstaluj ten pakiet", „dodaj bibliotekę do obsługi tej funkcji". Agent, generując odpowiedź, halucynuje nazwę zasobu, który nie istnieje — ale brzmi wiarygodnie, bo pasuje do wzorca prawdziwych nazw. Następnie, działając autonomicznie przez wbudowany terminal, agent pobiera ten zasób i wykonuje jego zawartość. Jeśli atakujący wcześniej zarejestrował tę właśnie zahalucynowaną nazwę i umieścił pod nią swój kod, agent właśnie uruchomił polecenia napastnika — na maszynie użytkownika, w jego imieniu, bez jego wiedzy.
Sedno tej techniki jest takie: halucynacja modelu przestaje być przypadkowym błędem, który co najwyżej marnuje czas, a staje się przewidywalną powierzchnią ataku. Skoro model zmyśla te same nazwy powtarzalnie, to te nazwy są jak niezarejestrowane domeny — wolne miejsca, które ktoś może zająć i uzbroić. Atakujący nie musi włamywać się do modelu ani łamać jego zabezpieczeń. Musi tylko wiedzieć, co model regularnie zmyśla, i być tam pierwszy.
To nie jest teoria — jeden taki pakiet już się rozszedł
W tym miejscu uczciwość wymaga rozróżnienia, bo łatwo pomylić ten atak z czymś, co już opisywano. Badacze z Palo Alto Networks opisali wcześniej „phantom squatting" — rejestrowanie zahalucynowanych domen internetowych, których model podaje adresy; naliczyli ich około ćwierć miliona, wolnych i czekających. Ale phantom squatting kończy się na stronie, na którą ofiara musi wejść albo kliknąć. HalluSquatting sięga dalej — aż do wykonania kodu, bo przejmuje samego agenta, który pobiera zasób. To różnica między zastawieniem pułapki a nakłonieniem twojego pomocnika, żeby sam do niej wszedł i przyniósł ci to, co w środku.
I nie jest to wyłącznie eksperyment laboratoryjny. W styczniu 2026 badacz z firmy Aikido, Charlie Eriksen, znalazł realny przypadek: zmyślony pakiet npm o nazwie react-codeshift, który instrukcje pisane przez AI zdążyły już rozpropagować do 237 projektów — a agenty wciąż codziennie próbowały go instalować. Pakiet nie istniał, dopóki Eriksen sam go nie zarejestrował, żeby uprzedzić potencjalnego napastnika; dzięki temu nie wyrządził szkody. Ale to jest dokładnie dowód, że mechanizm działa w praktyce: model halucynował konkretną nazwę na tyle konsekwentnie, że dziesiątki projektów zaczęły od niej zależeć, a wolne miejsce po niej stało tam, czekając, aż ktoś je zajmie. Brakowało tylko złośliwego aktora — a HalluSquatting pokazuje, jak łatwo mógłby się pojawić.
Botnet, który nie potrzebuje żadnej luki
Konsekwencją tej techniki jest coś, co badacze nazywają agentowym botnetem — i jest to nowy typ, różniący się od wszystkiego, co znamy. Klasyczny botnet, jak osławiony Mirai, rozprzestrzenia się przez luki, słabe hasła i ruch boczny — musi coś złamać, żeby się rozmnożyć. Botnet budowany na HalluSquatting nie łamie niczego. Rozprzestrzenia się przez halucynacje: każda maszyna, na której agent zmyśli zatrutą nazwę i ją wykona, staje się kolejnym węzłem. Nie ma exploita do wykrycia, nie ma podejrzanego ruchu przełamującego zaporę — jest agent, który robi dokładnie to, do czego go stworzono, tyle że sięga po zasób podstawiony przez atakującego.
Ma to dwie niepokojące własności. Pierwsza: taki botnet omija tradycyjne zabezpieczenia sieciowe, bo infekcja przychodzi kanałem, który zapora traktuje jako legalny — agent pobierający pakiet wygląda jak każdy inny agent pobierający pakiet. Druga: jego zasięg jest funkcją tego, jak często modele halucynują daną nazwę. Im popularniejsze narzędzie i im bardziej powtarzalna halucynacja, tym większy potencjalny botnet — bez żadnego wysiłku po stronie rozprzestrzeniania, bo pracę wykonują same agenty, na maszynach swoich użytkowników. To odwrócenie klasycznego modelu: nie atakujący szuka podatnych maszyn, lecz podatne maszyny same przychodzą po ładunek.
Uczciwie: co już działa, a czego jeszcze nie ma
Trzymajmy dyscyplinę, bo między dowodem koncepcji a katastrofą jest realna różnica. HalluSquatting jest na razie badaniem akademickim — zespół z Tel Awiwu, Technionu i Intuit zademonstrował technikę i jej skuteczność, ale nie opisuje trwającej kampanii z działającym botnetem. To jest ostrzeżenie oparte na udowodnionym mechanizmie, nie relacja z pożaru.
Ale dwie rzeczy nie pozwalają odłożyć tego jako czystej teorii. Pierwsza to przypadek react-codeshift — dowód, że halucynowane nazwy realnie rozchodzą się po ekosystemie i realnie są pobierane, i to codziennie, całkiem bez udziału atakującego. Mechanizm dostawy działa; brakuje tylko kogoś, kto go celowo uzbroi. Druga to fakt, że warunkiem ataku nie jest żadna luka do załatania — jest nią sama skłonność modeli do halucynacji, która nie zniknie z dnia na dzień i której nie da się „naprawić" jedną poprawką. Dopóki modele pewnie podają nazwy nieistniejących zasobów, a agenty pobierają je i wykonują bez weryfikacji, powierzchnia ataku pozostaje otwarta.
Co z tego wynika dla obrońcy
Pierwszy wniosek dotyczy każdego, kto pozwala agentowi kodującemu instalować zależności. Nie traktuj pobrania pakietu przez agenta jako czynności zaufanej tylko dlatego, że zainicjował ją twój asystent, a nie obcy. Agent, który sam wymyślił nazwę i sam po nią sięga, jest równie niebezpieczny jak instrukcja z niezaufanego źródła — bo źródłem jest tu halucynacja. Praktycznie: weryfikuj, czy pakiet, który agent chce zainstalować, faktycznie istnieje jako znany, używany zasób, zanim pozwolisz go pobrać. Zablokuj automatyczną instalację zależności bez potwierdzenia, zwłaszcza dla nazw, których nie rozpoznajesz. To ten sam odruch, który zalecaliśmy przy GhostApproval — punkt kontrolny musi pokazywać, co agent naprawdę robi, a „pobieram i wykonuję pakiet X" jest dokładnie takim momentem.
Drugi jest dla zespołów utrzymujących ekosystemy pakietów i rejestry. Przypadek react-codeshift pokazuje wartość strategii, którą zastosował Eriksen — proaktywnego rejestrowania halucynowanych nazw, zanim zrobi to napastnik. Monitorowanie, jakie nieistniejące nazwy próbują masowo pobierać agenty, jest teraz sygnałem bezpieczeństwa: wzrost prób instalacji nieistniejącego pakietu to znak, że modele go halucynują — a więc że jest to wolne miejsce, które ktoś może uzbroić. Im wcześniej takie miejsce zostanie zajęte przez obrońcę albo zablokowane, tym mniejsza szansa, że zajmie je atakujący.
Trzeci jest najszerszy i spina całą tę serię. Trzy ostatnie wpisy pokazały trzy twarze tej samej rzeczy: model, który jest pewny rzeczy nieprawdziwych, staje się bronią — raz tworząc wektor, raz niszcząc dane, raz otwierając drzwi. HalluSquatting jest najczystszym dowodem, że halucynacja nie jest już tylko problemem jakości odpowiedzi, który zniknie z lepszym modelem. Jest powierzchnią ataku — przewidywalną, zajmowalną, skalowalną. Dopóki traktujemy zmyślanie modelu jako irytujący błąd, a nie jako lukę bezpieczeństwa, dopóty będziemy zaskakiwani tym, że ktoś tę lukę zajął pierwszy. Bo w świecie, w którym agent nie tylko mówi, ale i wykonuje to, co zmyślił, każda powtarzalna halucynacja jest wolnym miejscem czekającym na właściciela.
Jedna myśl na koniec
Najdziwniejsze w tej całej serii jest to, że nie musimy już zakładać złośliwego, przebiegłego AI, żeby mieć realny problem. Wystarczy AI, które jest pewne siebie i się myli — i robi to w sposób powtarzalny. Atakujący nie potrzebuje przełamywać modelu ani go przekonywać; potrzebuje tylko obserwować, co model regularnie zmyśla, i stanąć w tym miejscu pierwszy. To jest chyba najbardziej wywrotowa lekcja tego lata: największą powierzchnią ataku nowej generacji narzędzi nie są ich luki, lecz ich pewność. Model, który powie „użyj pakietu X", nie wiedząc, że X nie istnieje, właśnie wskazał atakującemu, gdzie postawić pułapkę. A agent, który po ten pakiet sięgnie i go uruchomi, sam do niej wejdzie — z pełnym przekonaniem, że pomaga.
Źródła
The Hacker News — opis techniki HalluSquatting, rozróżnienie od phantom squatting oraz przypadek pakietu react-codeshift rozpropagowanego do 237 projektów: https://thehackernews.com/2026/07/new-hallusquatting-attack-could-trick.html
SecurityWeek — szczegóły badania zespołu z Tel Awiwu, Technionu i Intuit, koncepcja „untargeted promptware" i agentowych botnetów rozprzestrzeniających się przez halucynacje: https://www.securityweek.com/hallusquatting-turns-ai-hallucinations-into-botnet-delivery-mechanism/
GBHackers — techniczny opis adversarial hallucination squatting i listy podatnych narzędzi agentowych (Cursor, Windsurf, GitHub Copilot, Cline, Gemini CLI): https://gbhackers.com/hallusquatting-attack/











































































































































































































Nie nowy atak, tylko naprawiony błąd. Co łatka Gemini CLI mówi o tym, że tryb –yolo w potoku CI/CD to nie jest dobry pomysł