Publiczny exploit na krytyczną lukę w FortiSIEM: zdalne RCE bez uwierzytelnienia i droga do roota (CVE-2025-64155) - Security Bez Tabu

Publiczny exploit na krytyczną lukę w FortiSIEM: zdalne RCE bez uwierzytelnienia i droga do roota (CVE-2025-64155)

Wprowadzenie do problemu / definicja luki

Fortinet FortiSIEM (SIEM/UEBA) dostał krytyczną podatność umożliwiającą zdalne wykonanie poleceń/kodu bez uwierzytelnienia w wyniku błędnej neutralizacji elementów w wywołaniu komendy systemowej (CWE-78). Luka jest śledzona jako CVE-2025-64155 i – co najważniejsze operacyjnie – ma już upubliczniony PoC/exploit, co zwykle znacząco przyspiesza adopcję przez atakujących.

Uwaga porządkująca nazewnictwo: część publikacji nagłośniła temat pod wcześniejszym identyfikatorem CVE-2025-25256 (sierpień 2025). Badacze opisują jednak, że dalsza analiza doprowadziła do odkrycia nowej, łańcuchowej podatności i przypisania jej CVE-2025-64155.


W skrócie

  • Co to jest: zdalna, nieuwierzytelniona podatność prowadząca do RCE i w typowym scenariuszu do pełnej kompromitacji (root).
  • Gdzie: FortiSIEM – problem dotyczy usług komunikacyjnych phMonitor (wskazywany port TCP/7900 jako kluczowy punkt ekspozycji/mitigacji).
  • Wersje podatne (przykładowe zakresy): 6.7.0–6.7.10, 7.0.0–7.0.4, 7.1.0–7.1.8, 7.2.0–7.2.6, 7.3.0–7.3.4 oraz 7.4.0.
  • Status eksploitu: PoC opublikowany, brak potwierdzonych raportów o masowym „in-the-wild” w momencie publikacji analiz (ale ryzyko gwałtownie rośnie).
  • Najważniejsze działanie: patch/upgrade + natychmiastowe odcięcie dostępu do TCP/7900 z sieci niezaufanych.

Kontekst / historia / powiązania

Badacze z Horizon3.ai wskazują, że phMonitor był już historycznie „wejściem” do kilku podatności w FortiSIEM (wspominane m.in. CVE-2023-34992 i CVE-2024-23108), a zainteresowanie podatnościami Fortinetu bywa wysokie także po stronie grup ransomware (w kontekście FortiSIEM przywołano wątek zainteresowania w wyciekach czatów).

W praktyce to klasyczny wzorzec: produkt infrastrukturalny (SIEM) często stoi wysoko w zaufaniu sieciowym, a kiedy pojawia się RCE bez auth + PoC, czas do prób skanowania/ataku w internecie zwykle skraca się do godzin–dni.


Analiza techniczna / szczegóły luki

Z perspektywy technicznej, opis Horizon3.ai jest szczególnie istotny, bo pokazuje nie tylko „command injection”, ale łańcuch prowadzący do roota:

  1. Brak uwierzytelnienia do handlerów w phMonitor
    phMonitor mapuje dziesiątki handlerów operacji (komendy/typy żądań) i – kluczowo – część z nich jest dostępna zdalnie bez autoryzacji.
  2. Wejście przez obsługę żądania storage typu elastic
    W określonym przepływie parametry z payloadu (XML) trafiają do skryptu elastic_test_url.sh jako argumenty. Wprowadzono warstwę „utwardzania” (np. owijanie argumentów w cudzysłowy), ale…
  3. Argument injection do curl zamiast klasycznego command injection
    Skrypt buduje komendę curl, a następnie ją wykonuje. Badacze pokazują, że da się „wstrzyknąć” dodatkowe argumenty curl (np. zapis do pliku) – finalnie wykorzystując funkcję --next, która pozwala łańcuchować żądania w jednej instancji curl. To omija część ochrony wynikającej z cytowania argumentów.
  4. Arbitrary file write jako użytkownik uprzywilejowany (admin), a potem eskalacja do roota
    W demonstracji plik wykonywalny cyklicznie uruchamiany w systemie jest nadpisywany, co daje shell jako „admin”, a następnie wykorzystywany jest fakt, że pewne pliki wykonywane przez root są zapisywalne przez admin (np. skrypt uruchamiany z crona), co prowadzi do root.

Dodatkowo BleepingComputer zwraca uwagę na praktyczny trop detekcyjny: w logach phMonitor (/opt/phoenix/log/phoenix.logs) warto szukać wpisów zawierających m.in. PHL_ERROR i wskazania URL payloadu oraz docelowej ścieżki zapisu.


Praktyczne konsekwencje / ryzyko

Dlaczego to „pali się” bardziej niż typowa podatność?

  • Brak uwierzytelnienia + zdalny wektor sieciowy → niski próg ataku, szybka automatyzacja skanami.
  • PoC publicznie dostępny → rośnie prawdopodobieństwo masowych prób, nawet jeśli wcześniej brak było obserwacji „in-the-wild”.
  • FortiSIEM jako „high-trust asset”: kompromitacja SIEM to nie tylko RCE na serwerze – to często dostęp do integracji, kluczy, tokenów, poświadczeń do kolektorów i systemów logowania, a także idealny punkt do ruchu bocznego.

Rekomendacje operacyjne / co zrobić teraz

1) Patch/upgrade – priorytet P1

Zgodnie z dostępnymi zestawieniami wersji naprawionych:

  • 7.4: aktualizuj do 7.4.1+
  • 7.3: do 7.3.5+
  • 7.2: do 7.2.7+
  • 7.1: do 7.1.9+
  • Linie 6.7 i 7.0: rekomendowana migracja do wspieranej, naprawionej wersji (zamiast oczekiwania na łatkę).

2) Ogranicz ekspozycję phMonitor (TCP/7900) – natychmiast

Jeśli nie możesz zapatchować od razu, wdrożenie kontroli dostępu do portu 7900 (tylko z zaufanych segmentów/hostów) jest wskazywane jako workaround.

Minimalny baseline:

  • zablokuj TCP/7900 z Internetu i sieci użytkowników,
  • dopuść wyłącznie komunikację wymaganą topologią (kolektory ↔ supervisor),
  • dodaj alerty na nietypowe źródła ruchu do 7900.

3) Detekcja i triage

  • Przeszukaj logi: /opt/phoenix/log/phoenix.logs pod kątem anomalii i wzorców typu PHL_ERROR oraz podejrzanych ścieżek zapisu.
  • Sprawdź integralność/zmiany w lokalizacjach wskazywanych w analizie (przykładowo pliki nadpisywane w scenariuszu PoC) i wykonaj szybki hunting pod kątem „nagle zmienionych” plików wykonywalnych/skryptów.

4) Po incydencie lub podejrzeniu kompromitacji

  • rotacja kluczy/poświadczeń dostępnych z FortiSIEM (integracje, konta serwisowe, tokeny),
  • przegląd połączeń wychodzących (reverse shell / nietypowe egress),
  • weryfikacja cronów i plików uruchamianych cyklicznie.

Różnice / porównania z innymi przypadkami (jeśli dotyczy)

Warto zwrócić uwagę na różnicę jakościową: wiele błędów klasy „OS command injection” to pojedynczy punkt wstrzyknięcia. Tutaj badacze opisują argument injection do curl + arbitralny zapis pliku + eskalację przez błędne uprawnienia plików wykonywanych przez roota. To podejście jest szczególnie „produkcyjne” dla atakujących, bo:

  • pozwala obejść część utwardzeń (cytowanie argumentów),
  • daje stabilny prymityw (write-what-where w granicach uprawnień),
  • łatwo przerobić na trwałość (persistencję) przez pliki wykonywane cyklicznie.

Podsumowanie / kluczowe wnioski

  • CVE-2025-64155 to krytyczna podatność FortiSIEM umożliwiająca unauth RCE i typowo root w wyniku łańcucha błędów/konfiguracji.
  • Publiczny exploit/PoC znacząco zwiększa presję na szybkie działania obronne.
  • Najważniejsze kroki: aktualizacja do wersji naprawionych + odcięcie/ograniczenie TCP/7900 + szybki hunting w logach phMonitor.

Źródła / bibliografia

  1. BleepingComputer – informacja o upublicznieniu exploitu/PoC, mitigacji (port 7900) i wskazówkach dot. logów. (BleepingComputer)
  2. Horizon3.ai – techniczny write-up łańcucha: phMonitor → elastic_test_url.sh → argument injection do curl → zapis pliku → eskalacja do roota. (Horizon3.ai)
  3. Tenable – podsumowanie ryzyka, kontekst oraz tabela wersji podatnych/naprawionych. (Tenable®)
  4. NVD (NIST) – opis CVE i zakresy podatnych wersji. (NVD)