Aktualna sytuacja: PHP2Shell. Dwie krytyczne luki w PHP (CVSS 9,2) umożliwiają wykonanie złośliwego kodu bez logowania. Poprawki od 21.10.2026.Co należy teraz zrobić →

Bezpieczeństwo Craft CMS po PHP2Shell: jak zabezpieczyć strony agencji

Craft CMS działa na PHP i jest często używany w agencjach z wieloma stronami klientów. Po PHP2Shell liczą się poprawka, restart, chroniony Security Key i porównanie Project Config.

Stan 4 min czytaniaPlatformy

Krótko: Bezpieczeństwo Craft CMS zależy po PHP2Shell od PHP serwera, a nie od Craft. Zwłaszcza agencje z wieloma stronami Craft powinny teraz sprawdzić każdy serwer z osobna. Po poprawce i restarcie należy skontrolować .env, Security Key, devMode, katalog główny dokumentów oraz porównanie Project Config.

Co PHP2Shell oznacza dla stron Craft

Craft CMS jest lubiany w agencjach, ponieważ oferuje elastyczne modele treści i czyste szablony. Odpowiednio wiele agencji prowadzi dziesiątki stron Craft na różnych serwerach i w różnych pakietach hostingowych. Luki PHP CVE-2026-109618 i CVE-2026-109619 umożliwiają według zespołu PHP zdalne wykonanie złośliwego kodu bez logowania, niezależnie od wersji Craft.

Dla agencji najważniejsze pytanie ma więc charakter organizacyjny: która strona działa gdzie, na jakim PHP i kto odpowiada za aktualizację? Pierwszym krokiem jest lista wszystkich instalacji z firmą hostingową, stanem PHP i osobą kontaktową. Jak wspieramy w tym agencje, opisuje artykuł Partner bezpieczeństwa dla agencji.

Bezpieczeństwo Craft CMS: sprawdzanie wersji PHP

W panelu sterowania Narzędzia > Raport systemu pokazuje wersję PHP, bazę danych i zainstalowane wtyczki. Jest to wersja, na której strona działa w sieci. Konsola Craft php craft, przetwarzanie kolejki i zadania cron korzystają natomiast z PHP wiersza poleceń. Oba muszą być załatane.

Naprawione wersje upstream to 8.5.12, 8.4.27, 8.3.36 i 8.2.35. Wiele firm hostingowych wprowadza poprawki jako backport; numer pozostaje wtedy ten sam. Które wersje są dotknięte, pokazuje artykuł Które wersje PHP są dotknięte?. To, które wersje PHP obsługuje Państwa wersja Craft, można sprawdzić w wymaganiach systemowych w dokumentacji na craftcms.com.

Craft przetwarza zadania w tle w kolejce. Jeśli działa ona jako stały proces pod menedżerem procesów, ten również musi zostać zrestartowany po aktualizacji PHP.

Katalogi i konfiguracja w Craft

Miejsce Zawartość Punkt kontroli
.env Dane dostępowe do bazy danych, CRAFT_SECURITY_KEY, inne klucze Po podejrzeniu odnowić wartości
config/general.php devMode, allowAdminChanges, ścieżka do panelu sterowania Dopisany kod PHP
config/project/ Project Config jako YAML Porównanie z Git
web/ Katalog główny dokumentów z index.php, cpresources/, często pliki przesłane Dodatkowe pliki PHP
storage/ Logi, pliki czasu wykonania, często kopie zapasowe bazy danych Niedostępne przez sieć
templates/ Szablony Twig Obcy JavaScript
modules/, vendor/ Własne moduły i wtyczki Zmienione pliki, composer audit

Często pomijanym punktem jest storage/backups/. Craft zapisuje tam kopie zapasowe bazy danych, które mogą zawierać pełne dane klientów i formularzy. Ten folder nie może nigdy leżeć poniżej katalogu głównego dokumentów.

Bezpieczne kontrole w wierszu poleceń:

# Wyświetlenie różnic między Project Config a bazą danych
php craft project-config/diff
# Pliki PHP w katalogu głównym dokumentów poza index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
Ważne

W produkcji devMode musi mieć wartość false. Przy włączonym devMode Craft pokazuje szczegółowe komunikaty o błędach ze ścieżkami i fragmentami kodu, które ułatwiają pracę atakującym.

Panel sterowania, użytkownicy i wtyczki

Panel sterowania znajduje się domyślnie pod /admin. Proszę sprawdzić, którzy użytkownicy mają prawa administratora, i usunąć dostępy byłych pracowników oraz freelancerów. Craft obsługuje uwierzytelnianie dwuskładnikowe; proszę z niego korzystać dla wszystkich kont z podwyższonymi uprawnieniami.

W produkcji proszę ustawić allowAdminChanges na false. Wtedy pola, sekcje i ustawienia wtyczek można zmieniać tylko przez wersjonowaną Project Config, a każde odstępstwo rzuca się w oczy przy porównaniu z Git. Wtyczki z Plugin Store wnoszą własny kod PHP; proszę sprawdzić, czy wszystkie są nadal utrzymywane i pasują do docelowej wersji PHP.

// config/general.php, fragment dla środowiska produkcyjnego
'devMode' => false,
'allowAdminChanges' => false,

Co potrafi aktualizacja Craft, a czego nie

Aktualizacja Craft lub wtyczki zamyka błędy w tym kodzie i może umożliwić nowsze wersje PHP. Nie łata PHP, nie restartuje ani PHP-FPM, ani kolejki, nie odnawia wyciekłego Security Key i nie usuwa obcych plików z web/ ani storage/.

Dla agencji z wieloma instalacjami Craft liczy się po poprawce przede wszystkim powtarzalność. Proszę zapisać dla każdej strony, jaka wersja PHP działa w sieci i w wierszu poleceń, kiedy potwierdzono restart i czy kontrole wykazały nieprawidłowości. To zestawienie pomaga przy pytaniach klientów i przy przyszłych komunikatach. Proszę pamiętać także o publicznie dostępnych środowiskach stagingowych i deweloperskich. Działają one często z devMode, starszymi wersjami i prawdziwymi danymi klientów i przy aktualizacjach chętnie się je pomija. Jeśli są wątpliwości, czy strona klienta jest dotknięta, proszę poinformować klienta rzeczowo, zamiast czekać.

Jak konkretnie pomaga PHP SOS?

  • Wspólnie z Państwem rejestrujemy wszystkie instalacje Craft wraz z firmą hostingową, stanem PHP i odpowiedzialnością.
  • Prosimy o potwierdzenie poprawki i restartu dla każdego serwera i zabezpieczamy logi od 20.10.2026.
  • Sprawdzamy katalog główny dokumentów, storage, konfigurację, użytkowników i porównanie Project Config.
  • Na życzenie przejmujemy bieżącą opiekę nad bezpieczeństwem stron Państwa klientów w ramach umowy serwisowej bezpieczeństwa, także pod Państwa nazwą.

Częste pytania

Czy Craft CMS jest dotknięty przez PHP2Shell?

Sam Craft CMS nie ma nowej luki. Działa jednak na PHP, a PHP2Shell tkwi w PHP. Każda instalacja Craft na niezałatanym serwerze jest więc potencjalnie podatna na atak, niezależnie od wersji Craft.

Gdzie Craft pokazuje wersję PHP?

W panelu sterowania w Narzędzia > Raport systemu. Znajdują się tam wersja PHP, baza danych i zainstalowane wtyczki. Wprowadzonego backportu nie da się rozpoznać po numerze; potwierdza to Państwa firma hostingowa.

Czym jest Security Key w Craft i dlaczego go odnawiać?

Security Key z pliku .env służy do podpisywania i szyfrowania danych. Kto go zna, może w pewnych okolicznościach fałszować sesje lub dane formularzy. W razie podejrzenia należy go odnowić w uzgodnieniu z Państwa agencją.

Co daje allowAdminChanges ustawione na false?

Pola, sekcje i ustawienia wtyczek nie mogą wtedy być zmieniane w produkcji przez panel sterowania. Zmiany wchodzą już tylko przez wersjonowaną Project Config, co utrudnia manipulacje i czyni je bardziej widocznymi.

Źródła

Kontakt natychmiast

Liczy się każda godzina. Proszę napisać do nas teraz.

Proszę krótko opisać system, wersję PHP i obserwacje. Skontaktujemy się z Państwem, ustalimy sytuację i będziemy pracować zdalnie, aż incydent zostanie zamknięty i udokumentowany.

Natychmiastowa pomoc