Craft CMS (CVE-2025-35939): „średnia” luka, która w łańcuchu z CVE-2025-32432 przejmuje stronę
Craft CMS zapisywał bez sprawdzenia treść od niezalogowanych osób do plików sesji na serwerze. W parze z luką CVE-2025-32432 (ocena 10.0) pozwala przejąć firmową stronę. CISA potwierdza ataki. Zaktualizuj do 4.15.3 lub 5.7.5 albo nowszej.
Ten alert jest dla zarządu, CTO i CFO firm, których strona internetowa działa na Craft CMS, zwykle wdrożonym i utrzymywanym przez agencję. Werdykt: jeśli Craft CMS ma wersję starszą niż 4.15.3 (linia 4) lub 5.7.5 (linia 5), zaktualizuj go w ciągu kilku dni do najnowszej wersji w swojej linii, bo ta „średnia” luka jest ogniwem potwierdzonego łańcucha ataku, który kończy się przejęciem serwera strony.
1. CO SIĘ STAŁO? Fakty w pigułce
Amerykańska agencja CISA 2 czerwca 2025 roku dopisała podatność CVE-2025-35939 do katalogu KEV, czyli listy luk, o których ma dowody, że są wykorzystywane w prawdziwych atakach. CISA wprost zaznacza, że ta luka może być łączona z CVE-2024-58136 (błąd w bibliotece Yii, na której zbudowano Craft CMS), co opisuje luka CVE-2025-32432 z oceną 10.0.
Mechanizm: gdy niezalogowana osoba wchodzi na stronę wymagającą logowania, Craft CMS zapamiętuje adres powrotny w pliku sesji na serwerze (/var/lib/php/sessions/sess_...), bez sprawdzania treści. Nazwę pliku serwer sam podaje w ciasteczku. Napastnik może więc umieścić kod PHP w pliku o znanej ścieżce. Sam plik nic nie robi, ale druga luka może zmusić system do jego uruchomienia.
Termin naprawy wyznaczony przez CISA minął 23 czerwca 2025 roku, ponad rok temu.
Element
Szczegóły
Identyfikator CVE
CVE-2025-35939
Data dodania do CISA KEV
2025-06-02
Termin naprawy wg CISA
2025-06-23 (21 dni od wpisu)
Produkt
Craft CMS (system zarządzania treścią stron internetowych)
Wersje zagrożone
Wszystkie przed 4.15.3 oraz 5.0.0 do 5.7.4. Dla linii 3.x rejestry nie wskazują wersji z poprawką tej luki
Wersje bezpieczne
4.15.3 i 5.7.5 oraz nowsze; najnowsze wydania: 4.18.8 i 5.11.1 (wrzesień 2026). Uwaga: luka CVE-2025-32432 z tego samego łańcucha ma inne wersje naprawcze (3.9.15, 4.14.15, 5.6.17), więc aktualizacja tylko pod nią nie zamyka CVE-2025-35939
Typ podatności
Zewnętrzna kontrola parametru uznawanego za niezmienny; CWE-472 (wg rejestrującego); NVD: kategoria zbiorcza „inne”
Ocena CVSS
5.3 ŚREDNIA (CVSS 3.1, NVD i rejestrujący); 6.9 ŚREDNIA (CVSS 4.0, rejestrujący). Atak przez sieć, bez logowania, bez udziału użytkownika; sam skutek to częściowe naruszenie integralności. Powiązana CVE-2025-32432: 10.0
2. O CO CHODZI W PROSTYCH SŁOWACH?
Wyobraź sobie firmę, w której recepcja zapisuje na karteczce, do kogo gość chciał wejść, i odkłada ją do szuflady z jego numerkiem. Recepcja nie czyta, co gość podyktował, i zawsze mówi mu numer szuflady. Sama karteczka jest nieszkodliwa. Ale w firmie jest też pracownik, który na polecenie „wykonaj instrukcje z szuflady nr 12” robi to bez pytania. Razem daje to obcej osobie możliwość wydania dowolnego polecenia w firmie.
Tak działa ten łańcuch. CVE-2025-35939 to karteczka w szufladzie: kod napastnika zapisany w pliku sesji o znanej nazwie. CVE-2025-32432 to pracownik, który wykonuje instrukcje: luka pozwalająca uruchomić kod. Każda osobno wygląda na mniej groźną, razem dają przejęcie serwera strony. Dlatego sortowanie łatek wyłącznie po ocenie punktowej tu zawodzi.
💡 CMS to system do zarządzania treścią strony internetowej. Sesja to zapis na serwerze, po którym system rozpoznaje odwiedzającego. PHP to język, w którym napisany jest Craft CMS, więc kod PHP w pliku może zostać przez serwer wykonany. Łańcuch luk (chain) to połączenie kilku błędów, z których każdy osobno nie wystarcza do ataku. Yii to biblioteka programistyczna, na której zbudowano Craft CMS.
Scenariusz
Normalnie
Z podatnością
Niezalogowana osoba otwiera stronę panelu
Przekierowanie na logowanie
Tak samo, ale jej dowolna treść trafia do pliku sesji
Zawartość pliku sesji
Tylko dane systemu
Może zawierać kod PHP napastnika
Ścieżka do pliku
Nieznana z zewnątrz
Znana, bo identyfikator sesji jest w ciasteczku
Druga luka (CVE-2025-32432) załatana
Łańcuch przerwany
Ładunek dalej leży, czeka na kolejny sposób uruchomienia
Łatanie według ocen
Najpierw 10.0, potem 5.3
Aktualizacja „pod 10.0” zostawia otwartą lukę 5.3
źródło: Pexels, BOOM Photography
3. JAK HAKERZY TO WYKORZYSTUJĄ?
Poniżej typowy przebieg ataku dla tego łańcucha. To scenariusz poglądowy, a nie odtworzenie konkretnego incydentu. CISA ocenia wykorzystanie CVE-2025-35939 jako aktywne i automatyzowalne, ze skutkiem częściowym; pełne przejęcie wymaga drugiej luki.
Etap
Czas
Akcja hakerów
Wynik
1. Skanowanie
T+0 min
Automatyczne wyszukiwanie stron na Craft CMS i odczyt wersji
Lista celów
2. Podłożenie ładunku
T+1 min
Żądanie do strony wymagającej logowania z kodem PHP w adresie powrotnym
Kod zapisany w pliku sesji o znanej nazwie
3. Uruchomienie
T+2 min
Wykorzystanie drugiej luki (CVE-2025-32432 lub podobnej) do wykonania pliku
Kod napastnika działa na serwerze
4. Utrwalenie
T+10 min
Instalacja ukrytego pliku dającego stały dostęp
Kontrola nad stroną
5. Wykorzystanie
T+dni
Ukryte treści dla wyszukiwarek, przekierowania, wysyłka spamu, kradzież danych z formularzy
Strona pracuje dla napastnika
6. Skutek
T+tygodnie
Ostrzeżenia w przeglądarkach, spadek w wynikach wyszukiwania
🔴 Scenariusz 1: agencja zaktualizowała stronę tylko do wersji zamykającej CVE-2025-32432; ładunek nadal można podkładać, a pojawienie się nowej luki wykonującej pliki znów otwiera drogę do przejęcia.
🔴 Scenariusz 2: przejęta strona firmy usługowej przekierowuje część odwiedzających na strony oszustów, a przeglądarki zaczynają pokazywać ostrzeżenie przy wejściu na firmowy adres.
🔴 Scenariusz 3: napastnik przechwytuje dane z formularza kontaktowego i zamówień, w tym dane osobowe klientów.
4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?
Strona firmowa to źródło zapytań od klientów i wizytówka marki. Przejęta strona rzadko przestaje działać, ale zaczyna szkodzić: ostrzeżenia w przeglądarkach i spadek w wyszukiwarce zostają na tygodnie po usunięciu przyczyny.
Obszar biznesu
Potencjalny wpływ
Czas do wystąpienia
Koszty szacunkowe
Operacyjny
Czyszczenie i odbudowa strony, pilne prace agencji
Dni
10 tys. do 60 tys. PLN
Bezpieczeństwo danych
Wyciek danych z formularzy, kont użytkowników i bazy strony
Dni od przejęcia
10 tys. do 100 tys. PLN (analiza, powiadomienia)
Finansowy
Utracone zapytania i sprzedaż w czasie ostrzeżeń i spadku w wyszukiwarce
Tygodnie do miesięcy
20 tys. do 300 tys. PLN
Reputacyjny
Ostrzeżenie „strona niebezpieczna”, spam wysyłany z domeny firmy
Tygodnie
20 tys. do 200 tys. PLN
Prawny
Przy wycieku danych osobowych zgłoszenie do UODO w 72 godziny; możliwa kara RODO do 20 mln EUR lub 4% rocznego obrotu (zależnie od okoliczności)
72 godziny od wykrycia
10 tys. do 80 tys. PLN (prawnicy, obsługa zgłoszeń), bez ewentualnej kary
Kwoty są orientacyjnymi widełkami dla małej i średniej firmy, nie danymi z tego incydentu.
Interpretacja: sama luka ma ograniczony skutek (zapis pliku), ale jest aktywnie i automatycznie wykorzystywana, więc prawdopodobieństwo jest wysokie; jeśli strona nie ma też poprawki CVE-2025-32432, wpływ rośnie do maksymalnego, bo łańcuch kończy się wykonaniem kodu na serwerze.
5. CO MUSISZ ZROBIĆ NATYCHMIAST?
Lp.
Priorytet
Działanie
Termin
Odpowiedzialny
1
🔴 NATYCHMIAST
Ustalić dokładną wersję Craft CMS na stronie firmowej i innych serwisach
Dziś
Agencja / administrator strony
2
🔴 NATYCHMIAST
Jeśli wersja jest starsza niż 3.9.15, 4.14.15 lub 5.6.17: zaktualizować od razu, bo otwarta jest też luka 10.0
Dziś
Agencja
3
🟠 PILNIE
Zaktualizować do najnowszej wersji w linii 4 (4.18.8) lub 5 (5.11.1), co zamyka obie luki łańcucha
Do 3 dni
Agencja
4
🟠 PILNIE
Sprawdzić pliki sesji i katalogi strony pod kątem nieznanych plików PHP oraz zmian w plikach
Do 7 dni
Agencja / zespół bezpieczeństwa
5
🟠 PILNIE
Jeśli strona działa na linii 3.x: zaplanować migrację na linię wspieraną
Do 7 dni
CTO / agencja
6
🟡 WAŻNIE
Zmienić hasła do panelu, bazy danych i kluczy zapisanych w konfiguracji strony
Do 30 dni
Agencja
7
🟡 WAŻNIE
Wpisać do umowy z agencją obowiązek aktualizacji do najnowszej wersji, a nie „pod konkretną lukę”
Do 30 dni
CFO / CTO
Jeśli aktualizacja nie jest dostępna
Producent wydał poprawki dla linii 4 i 5. Do czasu aktualizacji pomagają poniższe miary, które ograniczają skutki łańcucha. Oceny efektywności to ocena ekspercka.
Czasowa miara ochronna
Efektywność
Łatwość wdrożenia
Aktualizacja przynajmniej do wersji zamykającej CVE-2025-32432 (przerywa znany łańcuch)
Średnia do wysokiej: usuwa zapalnik, nie ładunek
Średnia
Zapora aplikacyjna (WAF) blokująca kod PHP w parametrach adresu
Średnia
Średnia
Ograniczenie dostępu do panelu administracyjnego do znanych adresów
Niska wobec tej luki (dotyczy przekierowania), ale utrudnia inne ataki
Łatwa
Monitorowanie zmian w plikach strony
Niska jako ochrona, przydatna do wykrycia
Łatwa
Przed i po działaniu
Stan
Przed działaniem
Po działaniu
Pliki sesji
Mogą zawierać kod napastnika
Treść adresu powrotnego sprawdzana
Łańcuch ataku
Obie luki otwarte lub tylko jedna zamknięta
Obie zamknięte
Wersja Craft CMS
„Zaktualizowana pod komunikat”
Najnowsza w swojej linii
Wiedza o przejęciu
Brak
Sprawdzone pliki i zmienione hasła
Zgodność z terminem CISA
Zaległość od 23 czerwca 2025
Luka zamknięta i udokumentowana
6. KONTEKST I SKALA ZAGROŻENIA
Aspekt
Informacja
Czy jest wykorzystywana?
TAK (potwierdzone przez CISA); wykorzystanie aktywne i automatyzowalne
ENISA przypisuje wpis w polu produktu do innej firmy (Statamic); różne klasy CWE w NVD i u rejestrującego
Sygnały zagrożenia dla CVE-2025-35939CVSS 3.1 5.3/10 ███████████░░░░░░░░░ ŚREDNIACVSS łańcucha (32432) 10.0/10 ████████████████████ KRYTYCZNACISA KEV TAK ████████████████████ ataki potwierdzoneEPSS tej luki ~1,3% ░░░░░░░░░░░░░░░░░░░░ NISKAEPSS luki-partnera ~99,8% ████████████████████ PRAWIE PEWNE
2024 Poprawka CVE-2024-4990 w Yii, później błąd wraca (CVE-2024-58136)2025-05-02 CISA dodaje CVE-2024-58136 (Yii) do KEV2025-05-07 Publikacja CVE-2025-35939, wydania 4.15.3 i 5.7.52025-05-28 Dokument CISA opisujący łańcuch luk2025-06-02 CISA dodaje CVE-2025-35939 do KEV2025-06-23 Termin naprawy wg CISA dla agencji federalnych2026-03-20 CISA dodaje CVE-2025-32432 (ocena 10.0) do KEV2026-06-17 Ostatnia aktualizacja wpisu w NVD ... ponad rok od terminu CISA2026-09-17: TUTAJ JESTEŚMY
7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO
Zapytać agencję: na jakiej wersji Craft CMS działa nasza strona
CTO
DZISIAJ
2
Zapytać, czy zamknięte są obie luki: CVE-2025-35939 i CVE-2025-32432
CTO
DZISIAJ
3
Zatwierdzić aktualizację do najnowszej wersji w linii 4 lub 5
CTO
DO JUTRA
4
Zlecić sprawdzenie plików strony pod kątem śladów przejęcia
CTO
DO JUTRA
5
Sprawdzić w narzędziach wyszukiwarki i przeglądarki, czy strona nie jest oznaczona jako niebezpieczna
CTO
DO JUTRA
6
Przejrzeć umowę serwisową z agencją: zakres i terminy aktualizacji
CFO
DO JUTRA
7
Zarezerwować budżet na migrację, jeśli strona działa na linii 3.x
CFO
DO JUTRA
8. PYTANIA DO TWOJEGO ZESPOŁU IT
#
Pytanie
Odpowiedź
Priorytet
1
Jaka dokładnie wersja Craft CMS działa na naszej stronie?
[wersja]
🔴
2
Czy wersja zamyka zarówno CVE-2025-35939, jak i CVE-2025-32432?
TAK / NIE
🔴
3
Kiedy ostatnio aktualizowano Craft CMS i bibliotekę Yii?
[data]
🔴
4
Czy w plikach sesji lub katalogach strony znaleziono nieznane pliki PHP?
TAK / NIE
🟠
5
Czy strona działa na linii 3.x?
TAK / NIE
🟠
6
Czy mamy monitorowanie zmian plików strony?
TAK / NIE
🟡
7
Czy umowa z agencją obejmuje aktualizacje do najnowszych wersji?
TAK / NIE
🟡
Pytania diagnostyczne dla managera
✓ Czy wiem, na jakim systemie działa nasza strona i kto go aktualizuje?
✓ Czy łatki „średnie” są u nas odkładane w nieskończoność?
✓ Czy dowiedzielibyśmy się, że strona przekierowuje część klientów na obce adresy?
✓ Czy agencja raportuje nam numery wersji, a nie tylko „jest aktualne”?
✓ Czy formularze na stronie zbierają dane osobowe i gdzie są przechowywane?
Podsumowanie
CVE-2025-35939 pozwala niezalogowanej osobie zapisać kod PHP w pliku sesji Craft CMS o znanej ścieżce, a w łańcuchu z CVE-2025-32432 prowadzi do przejęcia serwera strony. CISA potwierdza ataki, a wersje zamykające obie luki są różne, więc łatanie wyłącznie „pod dziesiątkę” nie wystarcza. Aktualizacja do najnowszej wersji w linii 4 lub 5 zamyka cały łańcuch.
Czytaj dalej
Powiązane artykuły
Zestaw zmienia się codziennie, więc przy kolejnej wizycie zobaczysz inny wycinek bloga.
Luka o ocenie 10.0 w SonicWall SMA1000 daje dostęp do funkcji urządzenia bez logowania, a z CVE-2026-83549 pozwala je przejąć. SonicWall i CISA potwierdzają ataki. Zainstaluj hotfix i sprawdź urządzenie.
CISA dodała do katalogu KEV lukę z 2015 roku w narzędziu ABRT, która daje napastnikowi uprawnienia root na serwerach RHEL 7 i CentOS 7. Zaktualizuj pakiet abrt i zaplanuj wymianę systemów bez wsparcia.
Google i CISA potwierdzają ukierunkowane ataki na lukę w modemie telefonów Pixel, które nie wymagają działania użytkownika. Zaktualizuj telefony do poziomu poprawek 2026-09-05, zaczynając od zarządu.
Klikając „Akceptuję”, zgadzasz się na przechowywanie plików cookie przez UXU w celu poprawy działania strony, analizy i wsparcia działań marketingowych.