Pisaliśmy o CVE-2026-39987 w Marimo tydzień temu — notatniku programistycznym zaatakowanym w 9 godzin i 41 minut od ujawnienia podatności, bez publicznego kodu demonstracyjnego. Tamten wpis dotyczył tempa: jak szybko znika okno między ogłoszeniem a atakiem gdy podatność jest trywialna w eksploitacji.
Sysdig kontynuował obserwację przez kolejne dni. To co zebrali między 11 a 14 kwietnia dodaje do tej historii nową warstwę — nie o tempie, ale o tym do czego atakujący faktycznie użyli dostępu.
662 zdarzenia, jedenaście adresów IP, dziesięć krajów
Pierwsze godziny po ogłoszeniu były domeną jednego atakującego — to opisywaliśmy poprzednio. W ciągu kolejnych dni kampania rozrosła się: jedenaście unikalnych adresów IP z dziesięciu krajów, 662 zarejestrowane zdarzenia eksploitacji. Nie jeden atakujący który był szybszy niż administrator. Wiele podmiotów, różne cele, różne metody.
Sysdig zidentyfikował cztery odrębne wzorce działania po uzyskaniu dostępu.
Pierwszy wzorzec był tym co opisywaliśmy wcześniej: kradzież danych uwierzytelniających z pliku .env — klucze AWS, tokeny API, zmienne środowiskowe. Szybko, metodycznie, trzy minuty do wyciągnięcia wartościowych danych.
Drugi: atakujący z Niemiec (adres IP 159.100.6.251) przeprowadził 195 zdarzeń przez ponad trzy godziny. Wypróbował piętnaście różnych technik uzyskania powrotnej powłoki przez różne porty, a gdy to zawiodło — przestawił się na ruch boczny. Wyciągnął dane dostępowe do bazy danych z zmiennych środowiskowych i połączył się bezpośrednio z serwerem PostgreSQL. Przeglądał schematy, tabele i dane konfiguracyjne. Marimo było punktem wejścia, nie celem.
Trzeci: atakujący z Hongkongu użył skradzionych danych z pliku .env do połączenia się z serwerem Redis. Systematycznie skanował wszystkie szesnaście baz danych, kopiując przechowywane dane — tokeny sesji, wpisy pamięci podręcznej aplikacji. Nie szukał czegoś konkretnego. Zbierał wszystko.
Czwarty wzorzec jest najciekawszy.
Hugging Face jako infrastruktura dostarczania złośliwego kodu
Jeden z atakujących — po uzyskaniu powłoki przez CVE-2026-39987 — uruchomił polecenie pobierające skrypt z platformy Hugging Face Spaces. Przestrzeń nosiła nazwę vsccode-modetx — celowa literówka naśladująca "VS Code". Skrypt instalował plik wykonywalny o nazwie kagent — nazwę celowo wybraną żeby wyglądać jak legalny agent Kubernetes do obsługi AI.
Pod tą nazwą siedział nowy wariant NKAbuse — oprogramowania szkodliwego napisanego w języku Go, które jako kanał sterowania używa łańcucha bloków NKN zamiast tradycyjnych serwerów C2. To jest istotna różnica. Tradycyjny trojan zdalnego dostępu komunikuje się ze stałym adresem IP lub domeną — obydwa można zablokować, oba zostawiają ślad w dziennikach ruchu sieciowego. NKAbuse komunikuje się przez zdecentralizowaną sieć łańcucha bloków. Nie ma jednego adresu do zablokowania. Ruch wygląda jak standardowa komunikacja protokołu NKN. Klasyczne mechanizmy wykrywania po reputacji adresu IP nie działają.
Złośliwe oprogramowanie instaluje trwałość na kilka sposobów jednocześnie: usługa systemd dla systemów Linux, wpis crontab jako zapasowy mechanizm, agent uruchomieniowy macOS dla maszyn Apple. Usuń jeden — dwa pozostałe odtwarzają dostęp.
Dwa nowe wektory, jeden znany schemat
Historia Marimo dostaje w tym tygodniu dwie nowe warstwy warte osobnego omówienia.
Pierwsza: Hugging Face jako platforma dystrybucji złośliwego kodu. Hugging Face to największa platforma hostingowa dla modeli AI, zbiorów danych i narzędzi deweloperskich — GitHub dla świata uczenia maszynowego. Ma miliony legalnych użytkowników i czystą reputację wśród narzędzi do filtrowania ruchu sieciowego. Atakujący użyli jej dokładnie dlatego: pobieranie pliku z huggingface.co nie wyzwala alertów, które wyzwala pobieranie z nieznanej domeny. Zaufanie do platformy jest dziedziczone przez każdy plik na niej hostowany — niezależnie od jego zawartości.
Sysdig ujmuje to wprost: "Zaufane platformy są nową infrastrukturą przechowywania ładunków. Hugging Face Spaces, wydania na GitHubie, pakiety PyPI i obrazy Docker Hub mają domyślnie czystą reputację domeny. Tradycyjna ocena reputacji zawodzi gdy ładunek mieszka na platformie z milionami legalnych użytkowników."
To jest ten sam wzorzec który opisywaliśmy przy ataku na CPUID — zaufanie do nazwy i adresu jako wektor. Tam podmieniony był link na zaufanej stronie. Tu złośliwy plik hostowany jest na zaufanej platformie. Mechanizm identyczny, środowisko inne.
Druga: NKAbuse i łańcuch bloków jako infrastruktura C2. Użycie zdecentralizowanej sieci łańcucha bloków do sterowania złośliwym oprogramowaniem nie jest nowością — NKAbuse był dokumentowany przez Kaspersky'ego już w grudniu 2023 roku. Ale tam atakował stacje robocze z systemem Linux i urządzenia internetu rzeczy przez trzyletnią podatność w Apache Struts. Tutaj: nowy wariant, nowa podatność, nowe środowisko docelowe — stacje deweloperów AI. Ta sama rodzina złośliwego kodu, zaktualizowana o nową drogę dostarczenia i nowy cel.
Ruch boczny: Marimo nie jest celem
Najważniejszy wniosek z raportów Sysdig jest prosty: atakujący nie chcą Marimo. Chcą tego do czego Marimo ma dostęp.
Pisaliśmy o tym w pierwotnym wpisie — środowiska notatnikowe są skonfigurowane z kluczami do wszystkiego: interfejsów API modeli językowych, baz danych, usług chmurowych. Dane z nowych ataków potwierdzają to konkretnie: atakujący z PostgreSQL przeglądał schematy i tabele przez kilka godzin. Atakujący z Redis kopiował tokeny sesji ze wszystkich szesnastu baz danych.
Marimo jest bramą. Za bramą jest infrastruktura.
To łączy się bezpośrednio z tym co pisaliśmy o Flowise i w zestawieniu Marimo z Flowise: narzędzia deweloperskie AI są atakowane nie dla nich samych, ale dla dostępu do zasobów z którymi są połączone. Różnica między "narzędzie deweloperskie" a "system produkcyjny" nie istnieje z perspektywy atakującego — istnieje tylko z perspektywy administratora, który zdecydował że Marimo nie wymaga takiego samego poziomu ochrony co serwer produkcyjny.
Co to zmienia w rekomendacjach
Pierwotny wpis kończył się prostą rekomendacją: zaktualizuj do wersji 0.23.0, zrotuj klucze, monitoruj połączenia do /terminal/ws.
Nowe dane z Sysdig rozszerzają listę wskaźników kompromitacji i kroków remediacjiabout które warto wiedzieć jeśli instancja Marimo była dostępna publicznie między 8 a 14 kwietnia.
Wskaźniki obecności NKAbuse: katalog ~/.kagent/, wpis kagent.service w systemd, działający proces kagent. Na macOS: wpis LaunchAgent. Dodatkowo: aktywność sieciowa korzystająca z protokołu NKN — ruch na portach typowych dla tej sieci łańcucha bloków.
Wskaźniki ruchu bocznego: połączenia wychodzące z procesu Marimo do baz danych PostgreSQL lub Redis na innych serwerach wewnętrznych, szczególnie jeśli nie były wcześniej obserwowane. Zapytania enumerujące schematy i tabele mogą pojawić się w dziennikach baz danych.
Poza samym Marimo: jeśli serwer PostgreSQL lub Redis był dostępny z maszyny na której działało Marimo — należy zweryfikować integralność przechowywanych danych i zrotować tokeny sesji, klucze API i inne dane dostępowe które mogły być przechowywane w tych bazach.
Podsumowanie
CVE-2026-39987 w Marimo zaczął się jako historia o tempie eksploitacji. Skończył jako historia o tym jak narzędzie deweloperskie AI staje się punktem wejścia do całej infrastruktury, jak zaufane platformy jak Hugging Face są używane do omijania mechanizmów bezpieczeństwa opartych na reputacji, i jak złośliwe oprogramowanie adaptuje się do nowych środowisk — nowy wariant NKAbuse z tym samym sercem opartym na łańcuchu bloków, ale skrojony pod deweloperów AI zamiast urządzeń IoT.
Okno które opisywaliśmy tydzień temu — 9 godzin i 41 minut — było otwarte wystarczająco długo żeby przez nie weszło jedenaście grup z dziesięciu krajów, zainstalowało trwały dostęp oparty na łańcuchu bloków i wyciągnęło zawartość baz danych połączonych z zainfekowanymi środowiskami.
Źródła
Sysdig Threat Research Team — aktualizacja śledztwa z danymi o kampanii i analizą NKAbuse: https://www.sysdig.com/blog/cve-2026-39987-update-how-attackers-weaponized-marimo-to-deploy-a-blockchain-botnet-via-huggingface
BleepingComputer — omówienie kampanii z detalami technicznymi: https://www.bleepingcomputer.com/news/security/hackers-exploit-marimo-flaw-to-deploy-nkabuse-malware-from-hugging-face/
GBHackers — analiza czterech wzorców ataku: https://gbhackers.com/weaponized-cve-2026-39987/
The Hacker News — kontekst CVE i pierwsze dane o eksploitacji: https://thehackernews.com/2026/04/marimo-rce-flaw-cve-2026-39987.html






































































