
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
Bezpieczeństwo rozszerzeń przeglądarkowych wspieranych przez modele AI staje się jednym z kluczowych tematów współczesnego cyberbezpieczeństwa. Szczególnie groźne są sytuacje, w których asystent zintegrowany z przeglądarką może analizować treści stron, przetwarzać historię rozmów lub wykonywać działania w imieniu użytkownika. Opisana podatność, nazwana ShadowPrompt, dotyczyła rozszerzenia Claude dla Google Chrome i umożliwiała scenariusz zero-click, w którym samo odwiedzenie odpowiednio przygotowanej strony mogło doprowadzić do wstrzyknięcia złośliwego promptu do interfejsu asystenta.
W skrócie
Badacze ujawnili, że ShadowPrompt wynikał z połączenia dwóch błędów bezpieczeństwa. Pierwszym była zbyt szeroka lista dozwolonych źródeł komunikacji akceptowanych przez rozszerzenie, a drugim podatność DOM-based XSS w komponencie CAPTCHA hostowanym w subdomenie znajdującej się w zaufanej strefie usługi. Taki łańcuch pozwalał atakującemu wykonać kod JavaScript w zaufanym kontekście, a następnie dostarczyć spreparowany prompt wyglądający jak legalne polecenie użytkownika.
Kontekst / historia
Rozszerzenia AI coraz częściej działają jak półautonomiczni operatorzy w środowisku przeglądarki. Ich funkcje nie ograniczają się już do generowania odpowiedzi tekstowych, lecz obejmują także analizę zawartości kart, interakcję z otwartymi stronami, a niekiedy także dostęp do danych sesyjnych i wykonywanie akcji po stronie użytkownika. To zwiększa wygodę, ale równocześnie znacząco rozszerza powierzchnię ataku.
W przypadku ShadowPrompt problem nie wynikał z jednej krytycznej luki w samej przeglądarce, lecz z błędnie zaprojektowanej granicy zaufania. Rozszerzenie ufało zbyt szerokiemu zakresowi subdomen, a jeden z komponentów osadzonych w tym obszarze zawierał podatność XSS. To klasyczny przykład łańcucha exploitacyjnego, w którym dwa pozornie niezależne błędy składają się na realne przejęcie logiki działania narzędzia.
Analiza techniczna
Technicznie atak opierał się na dwóch współdziałających elementach. Pierwszy stanowiła nadmiernie permisywna walidacja originów, która dopuszczała komunikację z dowolnej subdomeny pasującej do określonego wzorca domenowego. Zamiast wymagać ścisłego dopasowania do pojedynczego, precyzyjnie zdefiniowanego źródła, rozszerzenie akceptowało znacznie szerszy zakres nadawców komunikatów.
Drugi element stanowiła podatność DOM-based XSS w komponencie Arkose Labs CAPTCHA hostowanym w subdomenie uznawanej przez rozszerzenie za zaufaną. Jeśli atakujący osadził taki komponent i przekazał odpowiednio spreparowany ładunek, mógł doprowadzić do wykonania arbitralnego kodu JavaScript w kontekście zaufanej subdomeny. Następnie możliwe było wysłanie komunikatu do rozszerzenia tak, jakby pochodził z autoryzowanego źródła.
Scenariusz miał charakter zero-click, co oznacza, że ofiara nie musiała wykonywać żadnej dodatkowej akcji. Wystarczało odwiedzenie specjalnie przygotowanej strony. Według opisu badaczy atak mógł wykorzystywać ukryty element iframe, mechanizm postMessage oraz spreparowany ładunek uruchamiający skrypt w obrębie zaufanego kontekstu. W efekcie złośliwy prompt trafiał do panelu Claude i mógł być traktowany jako prawidłowe żądanie użytkownika.
Konsekwencje / ryzyko
Ryzyko związane z tego typu podatnością jest wysokie, ponieważ dotyczy narzędzia działającego bardzo blisko aktywności użytkownika. W zależności od przyznanych uprawnień i kontekstu sesji skutki mogły obejmować odczyt historii interakcji z asystentem, manipulację poleceniami, próbę ujawnienia danych oraz wykonywanie działań w imieniu ofiary.
W praktyce podobny scenariusz może prowadzić do generowania poleceń nakłaniających asystenta do przeszukiwania zasobów przeglądarki, przygotowania wiadomości podszywających się pod użytkownika lub wykonywania innych operacji zależnych od możliwości rozszerzenia. W systemach agentowych prompt injection nie kończy się wyłącznie na błędnej odpowiedzi modelu, lecz może przełożyć się na realne działania w środowisku użytkownika.
Incydent uwidacznia też szerszy problem bezpieczeństwa AI: odporność całego rozwiązania zależy od najsłabszego elementu w łańcuchu zaufania. Jeśli zaufana subdomena albo osadzony komponent zewnętrzny zawiera lukę pozwalającą na wykonanie kodu, granica między klasyczną podatnością webową a przejęciem zachowania agenta AI szybko przestaje istnieć.
Rekomendacje
Twórcy rozszerzeń AI powinni stosować ścisłą walidację originów i unikać wzorców obejmujących całe klasy subdomen, jeśli nie jest to absolutnie konieczne. Komunikacja między stroną, iframe i rozszerzeniem powinna być ograniczona do dokładnie określonych źródeł oraz dodatkowo chroniona walidacją struktury i semantyki przesyłanych komunikatów.
Wysokiego ryzyka nie wolno także ignorować w przypadku komponentów stron trzecich osadzonych w zaufanych domenach. W praktyce oznacza to konieczność regularnych testów bezpieczeństwa integracji, przeglądów mechanizmów postMessage, analizy przepływów danych między DOM a logiką rozszerzenia oraz audytu zależności zewnętrznych.
- wymuszać szybkie aktualizacje rozszerzeń przeglądarkowych,
- ograniczać instalację dodatków AI do zatwierdzonych narzędzi,
- monitorować nietypowe działania wykonywane z poziomu przeglądarki,
- stosować zasadę minimalnych uprawnień dla rozszerzeń,
- weryfikować, czy narzędzia agentowe mają dostęp do poczty, danych sesyjnych i wrażliwych aplikacji biznesowych.
Z perspektywy użytkowników końcowych najważniejszym krokiem jest aktualizacja rozszerzenia do poprawionej wersji oraz ograniczenie zaufania do agentów AI wyposażonych w szerokie uprawnienia operacyjne. Każde rozszerzenie zdolne do pracy na kartach, sesjach logowania, poczcie lub danych firmowych powinno być traktowane jak oprogramowanie uprzywilejowane.
Podsumowanie
ShadowPrompt to istotny przykład nowej klasy zagrożeń na styku bezpieczeństwa przeglądarki, rozszerzeń oraz agentów AI. Połączenie zbyt szerokiej listy zaufanych originów z podatnością DOM-based XSS umożliwiło scenariusz zero-click, w którym sama wizyta na stronie mogła prowadzić do zdalnego wstrzyknięcia złośliwego promptu. Przypadek ten pokazuje, że w ekosystemie AI security prompt injection staje się nie tylko problemem jakości odpowiedzi modelu, ale również realnym wektorem przejęcia działań wykonywanych w imieniu użytkownika.
Źródła
- The Hacker News — https://thehackernews.com/2026/03/claude-extension-flaw-enabled-zero.html
- Mozilla Developer Network — DOM — https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model
- OWASP — Cross Site Scripting (XSS) — https://owasp.org/www-community/attacks/xss/