Powrót do strony głównej

RCE w Marimo CVE-2026-39987: eksploit za 9 godzin

Krytyczna RCE CVE-2026-39987 w Marimo pozwala pre-auth root-dostęp przez /terminal/ws. Eksploit stworzony za 9 godzin bez PoC, Sysdig zarejestrował atak na honeypot. Zalecenia: aktualizacja, rotacja sekretów, ochrona sieci.

Marimo RCE: root przez WebSocket bez hasła — eksploit za 9 godzin
Advertisement 728x90

Krytyczna luka RCE w Marimo: ekspluatacja w ciągu 9 godzin bez PoC

Krytyczna luka CVE-2026-39987 (CVSS 9.3) w Marimo do wersji 0.23.0 pozwala uzyskać dostęp root przez WebSocket bez uwierzytelniania. Sysdig zarejestrował pierwszy atak w ciągu 9 godzin i 41 minut od opublikowania zalecenia 8 kwietnia 2026 roku. Atakujący stworzyli ekspluatację na podstawie opisu, bez publicznego PoC, i wyeksfiltrują tajemnice z honeypota w ciągu 3 minut.

Problem tkwi w punkcie końcowym /terminal/ws: brakuje wywołania validate_auth(), w odróżnieniu od /ws. Wystarczy ręczne połączenie WebSocket, by uruchomić PTY-shell z uprawnieniami procesu. W obrazach Dockerowych Marimo domyślnie — dostęp root, a także pliki .env z kluczami OpenAI, Anthropic i Google Gemini.

Szczegóły techniczne luki

Marimo używa WebSocket do trwałych połączeń: /ws do interaktywnego UI i komórek, /terminal/ws do wbudowanego terminala. Drugi punkt końcowy sprawdza tylko flagi trybu terminalowego i wsparcia PTY — bez uwierzytelnienia tokenem sesyjnym.

Google AdInline article slot

W środowisku sieciowym te sprawdzenia są automatyczne. Wynik: każdy zdalny klient może się połączyć i uruchomić polecenia z uprawnieniami serwera. GHSA-2679-6MX9-H9XC klasyfikuje to jako CWE-306 (brak uwierzytelniania dla krytycznej funkcji). Poprawka w PR #9098 dodaje validate_auth().

Wdrożenie w Dockerze zwiększa ryzyko: proces działa jako root, a tajemnice znajdują się w .env lub ~/.aws/credentials. Złamanie daje dostęp do rozliczeń LLM, modeli i zbiorów danych.

Chronologia ataku i wskaźniki złośliwości

  • 00:00: Publikacja zalecenia.
  • 09:41: Pierwsze połączenie z /terminal/ws w honeypocie Sysdig.
  • <3 min: Przegląd systemu plików, odczyt .env, kluczy SSH, konfiguracji chmury.
  • ~1 godzina: Powrót atakującego do weryfikacji.

Brak minerów lub backdoorów — sygnał operacji celowej prowadzonej przez człowieka. Rejestruj WebSocket w proxy (nginx access.log, Caddy stdout). Podobne: połączenia z /terminal/ws zewnętrznych adresów IP po 8 kwietnia 2026.

Google AdInline article slot

Typowe ścieżki poszukiwania tajemnic:

  • .env
  • ~/.ssh/id_rsa, ~/.ssh/id_ed25519
  • ~/.aws/credentials
  • ~/.config/gcloud/
  • ~/.bash_history

Wzorzec RCE w narzędziach AI

Marimo (20 tys. gwiazdek na GitHubie) jest popularne w Stanford, Mozilla AI, OpenAI, BlackRock. Wdrożenia: Docker, Hugging Face Spaces, CoreWeave. To trzecia luka RCE w ciągu miesięcy:

  • Langflow CVE-2026-33017 — ekspluatacja w ciągu 20 godzin.
  • Flowise CVE-2025-59528 (CVSS 10.0) — wykorzystanie nawet po poprawce.
  • Marimo CVE-2026-39987.

Narzędzia AI (notebooki, przepływy) często traktowane są jako narzędzia deweloperskie: słaba segmentacja, monitorowanie, nadmiar uprawnień. Realność: dostęp produkcyjny do modeli, danych, rozliczeń.

Google AdInline article slot

Ochrona i audyt

Aktualizacja — priorytet:

  • marimo --version ≥ 0.23.0.
  • Docker: ponowne skompilowanie obrazu z użytkownikiem nie-root.

Zakładając, że port był otwarty po 8 kwietnia:

  • Obróć tajemnice: klucze LLM, dane dostępu do chmury, klucze SSH.
  • Audyt rozliczeń OpenAI/Anthropic/Google: nieznane żądania.
  • ss -tlnp | grep LISTEN — sprawdź porty Marimo/Jupyter/Flowise na 0.0.0.0.
  • Uruchom: marimo edit --host 127.0.0.1 + reverse-proxy (nginx auth, Caddy OAuth2).
  • Monitoruj: GitHub Security Advisories, osv.dev, CISA KEV.

Co ważne

  • Szybkość ataku: 9 godz. 41 min od zalecenia do RCE — norma przy szczegółowym opisie.
  • Domyślne uprawnienia root: Docker Marimo wymaga ręcznej konfiguracji USER.
  • Tajemnice w centrum uwagi: .env z kluczami LLM — główny cel.
  • Wzorzec AI-RCE: Trzecia luka z rzędu — wymaga podejścia produkcyjnego.
  • Wykrywanie: Logowanie /terminal/ws w proxy, audyt użycia LLM.

— Editorial Team

Advertisement 728x90

Czytaj dalej