Ataki z agentem LLM po luce Marimo CVE-2026-39987: nowy etap post-exploitation - Security Bez Tabu

Ataki z agentem LLM po luce Marimo CVE-2026-39987: nowy etap post-exploitation

Cybersecurity news

Wprowadzenie do problemu / definicja

Badacze bezpieczeństwa opisali incydent, w którym po wykorzystaniu krytycznej luki w Marimo napastnik nie poprzestał na prostym uzyskaniu dostępu do systemu. Zamiast klasycznego zestawu sztywnych skryptów użyto agenta opartego na dużym modelu językowym, który wykonywał kolejne działania po kompromitacji w sposób adaptacyjny, reagując na wyniki komend i charakterystykę środowiska.

To istotna zmiana w krajobrazie zagrożeń. Agent LLM może działać jak półautonomiczny operator: rozpoznawać host, wyszukiwać sekrety, planować następne kroki i modyfikować przebieg ataku bez konieczności ręcznej interwencji na każdym etapie.

W skrócie

  • CVE-2026-39987 dotyczy nieuwierzytelnionego zdalnego wykonywania kodu w Marimo przez endpoint WebSocket /terminal/ws.
  • Podatność umożliwiała uzyskanie pełnej interaktywnej powłoki PTY bez logowania na wersjach wcześniejszych niż 0.23.0.
  • W zaobserwowanym ataku napastnik wydobył poświadczenia chmurowe, pobrał klucz SSH z AWS Secrets Manager, wykonał ruch lateralny i uzyskał dostęp do wewnętrznej bazy PostgreSQL.
  • Charakter poleceń wskazywał, że działania po kompromitacji mogły być realizowane przez agenta LLM.

Kontekst / historia

Marimo to reaktywny notebook Pythona wykorzystywany przez zespoły analityczne, inżynieryjne i deweloperskie. Tego typu narzędzia często działają blisko danych, środowisk testowych, sekretów aplikacyjnych oraz usług chmurowych, dlatego ich ekspozycja do internetu znacząco zwiększa powierzchnię ataku.

Po ujawnieniu CVE-2026-39987 okazało się, że problem wynikał z niewłaściwej kontroli autoryzacji dla terminalowego endpointu WebSocket. Luka została usunięta w wersji 0.23.0, ale publicznie dostępne, niezałatane instancje szybko stały się atrakcyjnym celem. Z perspektywy obrońców to kolejny przykład, że narzędzia AI i data science nie mogą być traktowane jako zasoby o niskim ryzyku tylko dlatego, że nie są systemami produkcyjnymi w klasycznym rozumieniu.

Analiza techniczna

Istota podatności sprowadzała się do tego, że endpoint /terminal/ws akceptował połączenia bez prawidłowej weryfikacji uwierzytelnienia. W praktyce umożliwiało to nieautoryzowanemu użytkownikowi uzyskanie interaktywnej powłoki systemowej, czyli bardzo silnego punktu wejścia do dalszej kompromitacji.

W opisanym scenariuszu atak rozpoczął się od przejęcia publicznie wystawionej instancji Marimo. Następnie napastnik przeszukał środowisko pod kątem poświadczeń, odnalazł dane dostępowe do usług chmurowych i użył ich do odczytu sekretu z AWS Secrets Manager. W kolejnym kroku pobrano prywatny klucz SSH, zestawiono krótkie sesje do kolejnych systemów i dotarto do segmentu infrastruktury zawierającego bazę PostgreSQL, z której wyeksfiltrowano dane.

Najbardziej niepokojące było jednak nie samo przejście przez kolejne etapy, ale sposób realizacji działań. Badacze zwrócili uwagę na kilka elementów sugerujących użycie agenta LLM: improwizowaną sekwencję poleceń zależną od bieżących wyników, obecność komentarza planistycznego, formułowanie komend w sposób uporządkowany i przyjazny przetwarzaniu maszynowemu oraz przekazywanie wyników poprzednich komend do kolejnych decyzji operacyjnych.

Taki model działania oznacza, że atakujący nie musi wcześniej znać dokładnej architektury środowiska ofiary. Wystarczy ogólna wiedza o systemach Linux, sposobach przechowywania sekretów, konwencjach administracyjnych i typowych narzędziach, aby agent po uzyskaniu powłoki samodzielnie eksplorował host i budował kolejne etapy łańcucha ataku.

Konsekwencje / ryzyko

Ryzyko związane z tym incydentem wykracza daleko poza pojedyncze RCE. Najpoważniejszym problemem jest skrócenie czasu od uzyskania dostępu do osiągnięcia realnego wpływu biznesowego. Jeżeli agent potrafi samodzielnie odnajdywać poświadczenia, pobierać sekrety, wykonywać ruch boczny i identyfikować wartościowe zasoby, okno czasowe na detekcję i reakcję staje się znacznie krótsze.

Dodatkowo agentyczne post-exploitation zwiększa odporność napastnika na błędy i nietypowe warunki środowiskowe. Klasyczny skrypt często zawodzi przy niestandardowych ścieżkach, innym układzie katalogów czy odmiennym schemacie systemu. Agent może natomiast analizować wyniki, korygować plan i próbować alternatywnych metod, co podnosi skuteczność operacji w zróżnicowanych środowiskach.

Dla organizacji oznacza to ryzyko przejęcia kont chmurowych, utraty kluczy SSH, kompromitacji baz danych, wycieku danych wrażliwych oraz dalszego rozprzestrzenienia się ataku na środowiska deweloperskie i produkcyjne. Szczególnie narażone są firmy, które dopuszczają bezpośrednią ekspozycję notebooków i pomocniczych usług inżynieryjnych do internetu.

Rekomendacje

Najważniejszym działaniem jest natychmiastowa aktualizacja Marimo do wersji 0.23.0 lub nowszej oraz pełna inwentaryzacja wszystkich instancji dostępnych z sieci publicznej. Dotyczy to także środowisk testowych, tymczasowych i tworzonych ad hoc przez zespoły analityczne.

Należy również założyć możliwość wcześniejszej kompromitacji każdego hosta działającego na podatnej wersji. W praktyce oznacza to konieczność rotacji kluczy API, poświadczeń AWS, kluczy SSH, haseł do baz danych oraz wszystkich tokenów zapisanych lokalnie lub dostępnych przez zmienne środowiskowe. Sama poprawka nie eliminuje skutków potencjalnego włamania.

  • Ograniczyć ekspozycję notebooków i narzędzi AI do internetu.
  • Wymusić silne uwierzytelnianie przez reverse proxy lub warstwę pośrednią.
  • Zminimalizować uprawnienia IAM i dostęp do menedżerów sekretów.
  • Wdrożyć segmentację sieci, aby hosty deweloperskie nie miały bezpośredniej ścieżki do bastionów, baz danych i paneli administracyjnych.
  • Monitorować nietypowe połączenia do terminalowych endpointów WebSocket oraz seryjne, krótkie sekwencje komend systemowych.
  • Analizować użycie AWS Secrets Manager i sesji SSH inicjowanych z nieoczekiwanych hostów.

Podsumowanie

Incydent związany z CVE-2026-39987 pokazuje, że nowoczesny post-exploitation coraz częściej przybiera formę agentyczną. Krytyczna luka w Marimo umożliwiła uzyskanie dostępu, ale prawdziwym sygnałem ostrzegawczym jest to, że po wejściu na host napastnik mógł szybko przejść do kradzieży sekretów, ruchu lateralnego i eksfiltracji danych przy wsparciu mechanizmu przypominającego autonomicznego operatora.

Dla zespołów bezpieczeństwa oznacza to potrzebę szybszego patchowania, mocniejszej segmentacji, ograniczania uprawnień oraz budowania detekcji ukierunkowanej nie tylko na sam exploit, lecz także na wzorce elastycznego, zautomatyzowanego działania po kompromitacji.

Źródła

  1. Attackers Use LLM Agent for Post-Exploitation After Marimo CVE-2026-39987 Exploit
  2. AI agent at the wheel: How an attacker used LLMs to move from a CVE to an internal database in 4 pivots
  3. NVD – CVE-2026-39987
  4. marimo-team/marimo 0.23.0 release