CVE-2026-78381
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 32 - wyżej niż 32% wszystkich znanych CVE
Streszczenie
RansomLook zawiera podatność typu path traversal w obsłudze pola screen powiązanego z postami grupowymi. Handler API GroupPost.get łączy wartość screen kontrolowaną przez bazę danych bezpośrednio z katalogiem source/ aplikacji i otwiera wynikową ścieżkę bez weryfikacji, czy rozwiązany plik pozostaje w zamierzonym katalogu. Złośliwa instancja nadrzędna może dostarczyć sekwencje traversal, takie jak ../config/generic.json, co prowadzi do odczytu dowolnych plików.
Ocena ryzyka
Atakujący (będący administratorem) kontrolujący zaimportowane dane postów może odczytać dowolne pliki dostępne dla procesu RansomLook, potencjalnie ujawniając wrażliwe dane konfiguracyjne, poświadczenia API, hashe haseł lub inne sekrety aplikacji. Atak nie wymaga, aby złośliwa instancja nadrzędna posiadała konto w zaatakowanej instancji RansomLook.
Rekomendacja
Należy natychmiast zaktualizować RansomLook do wersji zawierającej poprawkę, która używa os.path.realpath() do rozwiązywania ścieżek screen i weryfikuje, że rozwiązana ścieżka pozostaje w katalogu source/. Dodatkowo należy ograniczyć zaufanie do danych importowanych z zewnętrznych instancji oraz monitorować logi API pod kątem nietypowych żądań.
Inne podatności w RansomLook
Zobacz wszystkie- CVE-2026-78555Krytyczne
RansomLook ujawniał pełne klucze API w źródle HTML uwierzytelnionej strony administracyjnej /admin/apikeys. Interfejs pokazywał tylko skróconą reprezentację klucza, ale pełny token był osadzony w ukrytych polach formularza używanych do akcji włączania/wyłączania, dostępu prywatnego i usuwania.
- CVE-2026-78387Krytyczne
RansomLook zawiera słabość autoryzacji w internetowym edytorze konfiguracji dostępnym przez punkt końcowy /admin/config. Punkt końcowy wymaga uwierzytelnionej sesji, ale nie przeprowadza jawnej kontroli uprawnień administratora przed umożliwieniem dostępu do funkcji zarządzania konfiguracją. Uwierzytelniony użytkownik o niskich uprawnieniach może modyfikować plik config/generic.json, zmieniając ustawienia powiadomień, LDAP, SMTP i ogólne ustawienia aplikacji.
- CVE-2026-78372Krytyczne
RansomLook nie egzekwuje spójnie kontroli autoryzacji przy dostępie do grup, rynków i notatek okupu oznaczonych jako prywatne. Nieuwierzytelniony lub nieautoryzowany zdalny atakujący może uzyskać dostęp do informacji związanych z prywatnymi encjami przez kilka widoków internetowych i punktów końcowych API. Funkcjonalność /compare może być również zapytana bezpośrednio z nazwą prywatnej encji, umożliwiając nieautoryzowanemu użytkownikowi pobranie informacji takich jak liczba postów, sumy luster i czas działania, nawet gdy encja jest wykluczona z normalnego interfejsu użytkownika.
- CVE-2026-78370Krytyczne
RansomLook zawiera wadę autoryzacji w starszej funkcji eksportu bazy danych, która może pozwolić nieuwierzytelnionym zdalnym użytkownikom na pobranie informacji przeznaczonych do pozostania prywatnymi. Punkt końcowy /export/<database> umożliwia eksport wybranych wewnętrznych baz danych bez wymagania uwierzytelnienia. Chociaż dla niektórych baz encji wykonywane jest ograniczone filtrowanie, inne eksportowalne bazy są zwracane bezpośrednio bez spójnego stosowania ograniczeń dostępu do prywatnych encji. W rezultacie informacje związane z grupami, rynkami, postami lub innymi rekordami oznaczonymi jako prywatne mogą być zawarte w eksporcie dostępnym dla nieuwierzytelnionego żądającego.
- CVE-2026-78553Wysokie
RansomLook utworzył klucz podpisywania sesji Flask bez ograniczenia uprawnień pliku, co skutkuje uprawnieniami takimi jak 0644. Inni lokalni użytkownicy mogą odczytać sekret kryptograficzny, co pozwala na generowanie ważnych ciasteczek sesyjnych i podszywanie się pod uwierzytelnionych użytkowników, w tym administratora.
- CVE-2026-78551Wysokie
Podatność w RansomLook umożliwia nieuwierzytelnionemu atakującemu enumerację nazw użytkowników, nieograniczone ataki siłowe na hasła oraz potencjalne wyczerpanie zasobów aplikacji. Problem wynika z różnic w czasie odpowiedzi dla istniejących i nieistniejących nazw użytkowników oraz braku ograniczeń liczby nieudanych prób logowania.
- CVE-2026-78391Wysokie
RansomLook zawiera podatność na trwały atak XSS w widoku szczegółów portfela kryptowalut. Adresy kryptowalut i nazwy blockchainów pochodzące z zewnętrznych źródeł, w tym publicznego feedu ransomwhe.re, były przechowywane bez wystarczającej walidacji i osadzane bezpośrednio w atrybucie onclick JavaScript. Mimo zastosowania autoescapingu Jinja, dane niezaufane umieszczone w stringu JavaScript wewnątrz atrybutu HTML mogły zostać zdekodowane przez parser HTML i wykonane jako kod.
- CVE-2026-78386Wysokie
RansomLook ujawnia wrażliwą konfigurację skrobania po stronie operatora przez nieuwierzytelnione odpowiedzi API. Rekordy lokalizacji związane z grupami ransomware i rynkami są zwracane prawie w całości nieuwierzytelnionym wywołującym, jeśli lokalizacja nie jest oznaczona jako prywatna. Rekordy te mogą zawierać wewnętrzne pola, takie jak nagłówki uwierzytelniające, ciasteczka sesji, skrypty inicjujące i szczegóły środowiska przeglądarki.
- CVE-2026-78385Wysokie
RansomLook zawiera niewystarczającą walidację zasobów w funkcji generowania analiz PDF. Dokumenty analiz są konwertowane z Markdown do HTML i przekazywane do WeasyPrint w celu renderowania PDF. Przed poprawką WeasyPrint używał domyślnego pobieracza URL, co pozwalało na nieograniczone rozwiązywanie referencji do zasobów zawartych w analizie.
- CVE-2026-78380Wysokie
Podatność w RansomLook polega na braku egzekwowania ustawień prywatności grup i rynków ransomware podczas dystrybucji nowo zebranych postów ofiar do zewnętrznych kanałów powiadomień. Logika po przetworzeniu sprawdza tylko, czy pojedynczy post jest oznaczony jako prywatny, ale nie weryfikuje, czy grupa lub rynek, do którego post należy, jest skonfigurowany jako prywatny. W rezultacie informacje o ofiarach z prywatnych grup lub rynków mogą być automatycznie publikowane przez włączone kanały Rocket.Chat, Mastodon, Bluesky i e-mail, a także dodawane do publicznego feedu MISP.
Oryginalny opis (angielski, źródło NVD)
RansomLook contains a path traversal vulnerability in the handling of the screen field associated with group posts. The GroupPost.get API handler concatenates the database-controlled screen value directly with the application's source/ directory and opens the resulting path without verifying that the resolved file remains within the intended directory. Because the screen field is free-form and can be populated either through the administrative post editor or through data imported from a remote RansomLook instance, a malicious upstream instance can provide traversal sequences such as ../config/generic.json. When the affected post is subsequently retrieved through the API, RansomLook resolves and reads the attacker-controlled path and returns the contents of the referenced file Base64-encoded in the API response. This can allow an attacker (being admin) controlling imported post data to read arbitrary files accessible to the RansomLook process, potentially exposing sensitive configuration data, API credentials, password hashes, or other application secrets. The attack does not require the malicious upstream to possess an account on the affected RansomLook instance. The vulnerability is addressed by resolving screen paths with os.path.realpath() and verifying that the resolved path remains beneath the application's source/ directory. Validation is performed both when values are written and immediately before files are read. Using canonical paths also prevents traversal through symbolic links that would bypass purely lexical path normalization checks.

