Pomoc zdalna
alerty bezpieczeństwa

Luka w notatniku marimo (CVE-2026-39987) daje obcym wiersz poleceń serwera bez hasła

Kanał terminala w marimo starszym niż 0.23.0 nie sprawdzał hasła. Ataki ruszyły w kilka godzin od ujawnienia, CISA je potwierdza. Zaktualizuj, odetnij od internetu i wymień klucze.

  • Paweł Niedźwiecki
Paweł Niedźwiecki
17 września 2026 9 min czytania
Programista pisze kod na laptopie

Ten alert jest dla zarządu, CTO i CFO firm, w których analitycy danych lub programiści korzystają z notatnika marimo dla języka Python. Werdykt: jeśli marimo w wersji starszej niż 0.23.0 jest osiągalne z sieci, zaktualizuj je dziś i sprawdź, czy ktoś już nie wszedł, bo luka daje obcej osobie wiersz poleceń serwera bez hasła, a ataki zaczęły się kilka godzin po ogłoszeniu błędu.

1. CO SIĘ STAŁO? Fakty w pigułce

Amerykańska agencja CISA 23 kwietnia 2026 roku dopisała podatność CVE-2026-39987 do katalogu KEV, czyli listy luk, o których ma dowody, że są wykorzystywane w prawdziwych atakach. Błąd dotyczy marimo, notatnika do pisania i uruchamiania kodu w Pythonie, który otwiera się w przeglądarce. Jeden z kanałów komunikacji programu, odpowiedzialny za wbudowany terminal, nie sprawdzał, czy łączący się ma prawo wejść.

Według analizy przywołanej w rekordzie podatności od ogłoszenia błędu do pierwszego wykorzystania minęło mniej niż dziesięć godzin. Termin naprawy wyznaczony przez CISA minął 7 maja 2026 roku, ponad cztery miesiące temu.

Element

Szczegóły

Identyfikator CVE

CVE-2026-39987 (w europejskiej bazie ENISA: EUVD-2026-20980)

Data dodania do CISA KEV

2026-04-23

Termin naprawy wg CISA

2026-05-07 (14 dni od wpisu)

Produkt

Marimo, notatnik dla Pythona (pakiet marimo); w bazach zapisywany też jako marimo-team lub coreweave

Wersje zagrożone

Wszystkie wersje marimo starsze niż 0.23.0. Podatny kanał terminala działa w trybie edycji notatnika (marimo edit) na systemach obsługujących terminal

Wersje bezpieczne

0.23.0 (pierwsza wersja z poprawką) i nowsze; najnowsza wersja w repozytorium PyPI w chwili pisania: 0.24.2

Typ podatności

Wykonanie dowolnych poleceń bez uwierzytelnienia; CWE-306 (brak uwierzytelnienia dla krytycznej funkcji)

Ocena CVSS

NVD: 9.8 (CVSS 3.1, KRYTYCZNA). Zgłaszający w GitHub Security Advisory: 9.3 (CVSS 4.0, KRYTYCZNA). Atak przez sieć, bez logowania i bez udziału użytkownika

2. O CO CHODZI W PROSTYCH SŁOWACH?

Wyobraź sobie biuro z czterema wejściami. Przy trzech stoi recepcjonistka, która sprawdza identyfikator każdej osoby. Czwarte wejście, od zaplecza, prowadzi prosto do serwerowni i ma tylko kartkę „dla personelu”. Nikt tam nie stoi, bo wszyscy zakładają, że skoro główne wejścia są pilnowane, budynek jest bezpieczny. Audytor sprawdza recepcję, zostaje zatrzymany i pisze w raporcie, że wszystko działa.

Tak wyglądał błąd w marimo. Program przyjmuje połączenia z przeglądarki kilkoma kanałami i prawie wszystkie sprawdzają uprawnienia. Kanał terminala tego nie robił: po połączeniu od razu otwierał pełny wiersz poleceń na serwerze. Kto znał jego adres, dostawał to samo, co administrator siedzący przy klawiaturze.

💡 Notatnik (notebook) to program, w którym pisze się fragmenty kodu i od razu widzi ich wyniki; marimo jest takim notatnikiem dla Pythona. Terminal / wiersz poleceń (powłoka) to okno, w którym wpisuje się polecenia wykonywane bezpośrednio przez system operacyjny. WebSocket to stałe połączenie między przeglądarką a serwerem, którym płyną dane w obie strony. KEV (Known Exploited Vulnerabilities) to katalog CISA z lukami potwierdzonymi w atakach.

Scenariusz

Normalnie

Z podatnością

Obca osoba otwiera adres notatnika

Widzi ekran logowania i zostaje odrzucona

Nadal widzi ekran logowania, więc wszystko wygląda dobrze

Obca osoba łączy się z kanałem terminala

Połączenie odrzucone bez hasła

Dostaje pełny wiersz poleceń serwera

Klucze do baz danych i chmury w plikach na serwerze

Dostępne tylko dla zalogowanych pracowników

Do odczytania przez napastnika

Notatnik w kontenerze Docker w domyślnej konfiguracji

Polecenia wykonują zalogowani użytkownicy

Wg zgłaszającego polecenia napastnika działają jako root

Audyt „od strony logowania”

Potwierdza ochronę

Daje fałszywe poczucie bezpieczeństwa

Wąska drewniana furtka w długim płocie, jedyne przejście na ścieżkę przez wzgórzaźródło: Pexels, Victoria Bowers

3. JAK HAKERZY TO WYKORZYSTUJĄ?

Poniżej typowy przebieg ataku dla tej klasy podatności. To scenariusz poglądowy, a nie odtworzenie konkretnego incydentu. Atak jest możliwy z internetu lub z sieci firmowej, jeśli notatnik jest w niej osiągalny, nie wymaga konta ani hasła, a CISA ocenia, że da się go zautomatyzować. Opis błędu i przykładowy kod ataku są publicznie dostępne w komunikacie na GitHubie.

Etap

Czas

Akcja hakerów

Wynik

1. Ogłoszenie błędu

T+0 godz.

Lektura publicznego opisu, który wskazuje dokładny adres podatnego kanału

Gotowy przepis na atak

2. Skanowanie

T+1 do 10 godz.

Automatyczne wyszukiwanie w internecie serwerów z notatnikiem marimo

Lista dostępnych celów

3. Wejście

T+kilka minut od znalezienia celu

Połączenie z kanałem terminala bez hasła

Wiersz poleceń na serwerze firmy

4. Kradzież kluczy

T+pierwsza godzina

Odczyt plików konfiguracyjnych z hasłami do baz danych i kluczami chmurowymi

Dostęp do systemów, z którymi łączy się notatnik

5. Utrwalenie

T+1 do 3 dni

Instalacja koparek kryptowalut, tylnych furtek lub narzędzi do dalszego ataku

Stały dostęp niezależny od aktualizacji

6. Wykorzystanie danych

T+dni do tygodni

Pobranie danych klientów z baz i chmury, szantaż lub sprzedaż danych

Wyciek i koszty incydentu

Konkretne scenariusze zagrożenia

  • 🔴 Scenariusz 1: pracownia analityczna postawiła marimo na wynajętym serwerze, żeby pracować nad raportami dla klientów; napastnik wchodzi przez terminal i kopiuje klucze do bazy z danymi sprzedażowymi klientów.
  • 🔴 Scenariusz 2: programista uruchomił notatnik na serwerze testowym z kluczami do chmury; napastnik wykorzystuje je do uruchomienia kosztownych maszyn, a rachunek przychodzi na koniec miesiąca.
  • 🔴 Scenariusz 3: firma aktualizuje marimo po kilku tygodniach, ale nie unieważnia kluczy zapisanych na serwerze, więc napastnik zachowuje dostęp do baz danych mimo wgranej poprawki.

4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?

Narzędzia analityczne często stawia się doraźnie, na jeden projekt, poza głównym nadzorem działu IT, a zostają na lata. Leżą na nich klucze do najcenniejszych danych firmy. Luka, która daje wiersz poleceń bez hasła, zamienia taki zapomniany serwer w otwarte drzwi do tych danych.

Obszar biznesu

Potencjalny wpływ

Czas do wystąpienia

Koszty szacunkowe

Operacyjny

Przejęty serwer analityczny, przerwane projekty i raporty dla klientów

Godziny od wejścia

10 tys. do 100 tys. PLN (odtworzenie środowiska, przestój zespołu)

Bezpieczeństwo danych

Kradzież kluczy dostępowych i danych z baz, z którymi łączy się notatnik

Godziny do dni

30 tys. do 250 tys. PLN (analiza powłamaniowa, wymiana kluczy)

Finansowy

Rachunki za zasoby chmurowe uruchomione przez napastnika, koszty obsługi incydentu

Dni do tygodni

20 tys. do 300 tys. PLN łącznie

Reputacyjny

Utrata zaufania klientów, których dane analizowano

Tygodnie do miesięcy

50 tys. do 400 tys. PLN (utracone kontrakty)

Prawny

Obowiązek zgłoszenia naruszenia do UODO w ciągu 72 godzin, jeśli wyciekły dane osobowe; możliwa kara RODO do 20 mln EUR lub 4% rocznego obrotu, zależnie od okoliczności; roszczenia klientów z umów powierzenia danych

72 godziny od wykrycia

20 tys. do 150 tys. PLN (obsługa prawna, zgłoszenia), bez ewentualnej kary

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Kwoty są orientacyjnymi widełkami dla małej i średniej firmy, nie danymi z tego incydentu.

Macierz ryzyka dla notatnika marimo starszego niż 0.23.0 osiągalnego z sieci Wpływ 5 | . . . . ■ ← KRYTYCZNE 4 | . . . . . 3 | . . . . . 2 | . . . . . 1 | . . . . . +-------------------- 1 2 3 4 5 Prawdopodobieństwo

Interpretacja: przy notatniku dostępnym z sieci ryzyko jest krytyczne, bo atak jest prosty, zautomatyzowany, wykorzystywany od pierwszego dnia i daje pełną kontrolę nad serwerem; notatnik uruchomiony tylko lokalnie na laptopie, bez dostępu z sieci, jest znacznie mniej narażony.

5. CO MUSISZ ZROBIĆ NATYCHMIAST?

Lp.

Priorytet

Działanie

Termin

Odpowiedzialny

1

🔴 NATYCHMIAST

Spisać wszystkie miejsca, gdzie działa marimo (serwery, maszyny wirtualne, kontenery, laptopy zespołu danych) i sprawdzić wersję

Dziś

Kierownik zespołu danych / administrator

2

🔴 NATYCHMIAST

Zaktualizować marimo do 0.23.0 lub nowszej wersji (w Pythonie zwykle jedno polecenie aktualizacji pakietu)

Dziś

Administrator / programista

3

🔴 NATYCHMIAST

Odciąć od internetu notatniki, których nie da się dziś zaktualizować

Dziś

Administrator sieci

4

🟠 PILNIE

Unieważnić i wymienić klucze do baz danych i chmury zapisane na serwerach z marimo, które były osiągalne z sieci

Do 3 dni

Administrator / właściciel systemów

5

🟠 PILNIE

Przejrzeć logi serwera i procesy od kwietnia 2026 roku pod kątem obcych połączeń z terminalem, nowych kont i koparek kryptowalut

Do 7 dni

Dział IT / zewnętrzny zespół bezpieczeństwa

6

🟡 WAŻNIE

Wprowadzić zasadę: narzędzia deweloperskie tylko w sieci wewnętrznej lub przez VPN

Do 30 dni

CTO

7

🟡 WAŻNIE

Ustawić powiadomienia o nowych podatnościach dla używanych pakietów, także po nazwie pakietu, nie tylko producenta

Do 30 dni

CTO

Jeśli aktualizacja nie jest dostępna

Producent wydał poprawkę w wersji 0.23.0, więc docelowo trzeba ją wgrać. Poniższe miary mają sens tylko na czas przygotowania aktualizacji. Oceny efektywności to ocena ekspercka.

Czasowa miara ochronna

Efektywność

Łatwość wdrożenia

Wyłączenie notatnika do czasu aktualizacji

Wysoka: usuwa zagrożenie

Łatwa, ale zatrzymuje pracę zespołu

Dostęp do notatnika tylko z sieci wewnętrznej lub przez VPN, blokada na zaporze

Wysoka wobec napastników z internetu, nie chroni przed kimś już w sieci

Łatwa do średniej

Uruchamianie w trybie tylko do odczytu (bez trybu edycji), jeśli wystarcza do pracy

Średnia: podatny kanał działa w trybie edycji

Łatwa, ale ogranicza funkcje

Uruchamianie w kontenerze bez uprawnień root i bez kluczy produkcyjnych

Średnia: ogranicza skutki, nie blokuje wejścia

Średnia

Przed i po działaniu

Stan

Przed działaniem

Po działaniu

Kanał terminala

Otwarty bez hasła

Wymaga uwierzytelnienia

Dostępność notatnika

Często z internetu

Tylko z sieci firmowej lub przez VPN

Klucze na serwerze

Mogły zostać skopiowane

Wymienione, stare unieważnione

Wiedza o incydencie

Brak

Logi przejrzane, wiadomo, czy ktoś wszedł

Zgodność z terminem CISA

Zaległość sprzed ponad 4 miesięcy

Luka zamknięta i udokumentowana

6. KONTEKST I SKALA ZAGROŻENIA

Aspekt

Informacja

Czy jest wykorzystywana?

TAK (potwierdzone przez CISA); wg analizy w rekordzie podatności pierwsze wykorzystanie nastąpiło w mniej niż 10 godzin od ujawnienia

Grupy przestępcze

Brak publicznych informacji

Kampanie ransomware

Brak potwierdzenia (CISA: Unknown)

Ocena CVSS

9.8/10 KRYTYCZNA (CVSS 3.1, NVD); 9.3/10 KRYTYCZNA (CVSS 4.0, GitHub Security Advisory)

PoC dostępny publicznie?

TAK, przykładowy kod ataku zawiera sam komunikat bezpieczeństwa na GitHubie

Liczba atakowanych firm

Brak publicznych informacji

Automatyzacja ataku

Wg CISA możliwa, skutek techniczny całkowity

Prognoza EPSS

Ok. 96,6% szansy próby wykorzystania w ciągu 30 dni, percentyl ok. 99,9 (wg analizy źródłowej)

Uwaga dla działu IT: ten sam produkt figuruje w bazach pod trzema nazwami dostawcy (Marimo, marimo-team, coreweave). Automatyczne dopasowanie spisu oprogramowania do bazy podatności może go pominąć, więc warto sprawdzić go ręcznie po nazwie pakietu.

Sygnały zagrożenia dla CVE-2026-39987 CVSS 3.1 (NVD) 9.8/10 ████████████████████ KRYTYCZNA CVSS 4.0 (GitHub) 9.3/10 ███████████████████░ KRYTYCZNA EPSS (próba w 30 dni) ~96,6% ███████████████████░ BARDZO WYSOKA CISA KEV TAK ████████████████████ ataki potwierdzone Publiczny kod ataku TAK ████████████████████ w komunikacie GitHub

Linia czasu incydentu

2026-04-08 Publikacja komunikatu GHSA-2679-6mx9-h9xc, poprawka w wersji 0.23.0 2026-04-09 Publikacja rekordu CVE-2026-39987 w publicznej bazie ... pierwsze ataki w mniej niż 10 godzin od ujawnienia (wg analizy w rekordzie) 2026-04-23 CISA dodaje lukę do katalogu KEV 2026-05-07 Termin naprawy wg CISA dla agencji federalnych ... ponad 4 miesiące od terminu CISA 2026-09-17: TUTAJ JESTEŚMY

7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO

Oficjalny komunikat z wersją poprawki: github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc . Wpis w NVD: nvd.nist.gov/vuln/detail/CVE-2026-39987 .

Lp.

Zadanie

Kto

Deadline

1

Ustalić, czy ktokolwiek w firmie (także podwykonawcy) używa marimo

CTO

DZISIAJ

2

Uzyskać pisemne potwierdzenie wersji 0.23.0 lub nowszej na każdej instalacji

CTO

DZISIAJ

3

Zatwierdzić odcięcie od internetu notatników, których nie zaktualizowano

CTO

DZISIAJ

4

Zlecić wymianę kluczy do baz danych i chmury na serwerach z marimo

CTO

DO JUTRA

5

Zlecić przegląd logów i rachunków chmurowych od kwietnia 2026 roku

CTO

DO JUTRA

6

Sprawdzić rachunki za chmurę pod kątem nieoczekiwanych kosztów

CFO

DO JUTRA

7

Zarezerwować budżet na analizę powłamaniową, jeśli przegląd coś wykaże

CFO

DO JUTRA

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

8. PYTANIA DO TWOJEGO ZESPOŁU IT

#

Pytanie

Odpowiedź

Priorytet

1

Na ilu maszynach działa marimo i w jakich wersjach?

[liczba] / [wersja]

🔴

2

Czy którykolwiek notatnik marimo był osiągalny z internetu?

TAK / NIE

🔴

3

Kiedy wszystkie instalacje zaktualizowano do 0.23.0 lub nowszej?

[data]

🔴

4

Czy klucze i hasła zapisane na tych serwerach zostały wymienione?

TAK / NIE

🔴

5

Czy przejrzano logi i procesy serwerów od kwietnia 2026 roku?

TAK / NIE

🟠

6

Czy notatniki działają w kontenerach z uprawnieniami root?

TAK / NIE

🟠

7

Czy nasz spis oprogramowania obejmuje narzędzia instalowane przez zespół danych?

TAK / NIE

🟡

Pytania diagnostyczne dla managera

  • ✓ Czy wiem, kto w firmie może samodzielnie uruchamiać narzędzia dostępne z internetu?
  • ✓ Czy dowiadujemy się o krytycznych lukach tego samego dnia, czy z miesięcznego raportu?
  • ✓ Czy wiemy, jakie klucze do danych klientów leżą na serwerach roboczych?
  • ✓ Czy mamy procedurę zgłoszenia naruszenia danych do UODO w 72 godziny?
  • ✓ Czy rachunki za chmurę są na bieżąco porównywane z planowanym zużyciem?

Podsumowanie

CVE-2026-39987 pozwala każdemu, kto dotrze do notatnika marimo starszego niż 0.23.0, otworzyć wiersz poleceń serwera bez hasła. CISA potwierdza ataki, zaczęły się w ciągu kilku godzin od ujawnienia, a publiczny kod ataku jest w komunikacie producenta, więc aktualizacja, odcięcie od internetu i wymiana kluczy to zadania na dziś.

Czytaj dalej

Powiązane artykuły

Zestaw zmienia się codziennie, więc przy kolejnej wizycie zobaczysz inny wycinek bloga.

Masz to samo u siebie?

Możemy się tym zająć

Krótka rozmowa wystarczy, żeby ocenić zakres prac i podać widełki kosztu. Bez zobowiązań.