Błąd 500 lub biały ekran w PrestaShop: co zrobić teraz
Twój sklep PrestaShop pokazuje błąd 500 albo pustą stronę: co zrobić teraz, żeby nie pogorszyć sprawy, jak zobaczyć…
20 października pojawiło się ostrzeżenie, które postawiło w stan gotowości pół internetu: dwie poważne luki w PHP, języku, na którym działa Twój sklep PrestaShop, pozwalające obcej osobie przejąć kontrolę nad serwerem bez loginu i hasła. Nazwano je PHP2Shell. PHP opublikowało poprawkę bezpieczeństwa 21 października, a to, co musisz zrobić, zależy od jednej rzeczy: wersji PHP, na której działa Twój sklep.
Wyjaśniamy to bez żargonu: co się stało, jak sprawdzić, czy Cię to dotyczy, co zrobić dziś i co zrobić, jeśli Twój sklep działa na wersji, która poprawki nie dostaje.
PHP to silnik, który pracuje pod PrestaShop, WordPressem, Magento i większością sklepów i stron na świecie. Obie luki, zarejestrowane jako CVE-2026-109618 i CVE-2026-109619, mają ocenę wagi 9,2 na 10. W praktyce ten, kto umie je wykorzystać, może uruchomić na Twoim serwerze, co tylko zechce: zostawić tylne drzwi, ukraść dane Twoich klientów albo wstawić do sklepu fałszywą captchę, jak w przypadku ClickFix.
Od innych ostrzeżeń różni się tym, że atak nie przechodzi przez PrestaShop ani przez żaden moduł. Dzieje się w PHP, zanim Twój sklep w ogóle odczyta wizytę. Nieważne, jak dobrze jest zadbany: jeśli PHP na serwerze ma lukę, sklep też.
Do tego informacje wyciekły przed czasem. Firma zajmująca się bezpieczeństwem Sansec podaje, że razem z ostrzeżeniem pojawił się zrzut ekranu gotowego narzędzia do ataku, i spodziewał się masowych ataków, gdy tylko poprawka zostanie opublikowana. Według tego samego źródła Cloudflare widział już wtedy pierwsze próby i wprowadził reguły, które mają je blokować.
Najpewniej tak. W swoim komunikacie bezpieczeństwa PHP uznaje za zagrożoną każdą instalację, która serwuje strony internetowe, niezależnie od tego, jak serwer ją uruchamia, a najwyższe ryzyko wskazuje na serwerach Apache z mod_php, gdzie jest już zademonstrowany atak działający bez loginu i hasła. Sansec mówi o każdym serwerze z PHP 5.4 lub nowszym, czyli w praktyce o każdym działającym dziś sklepie PrestaShop.
Naprawdę ważne jest inne pytanie: czy poprawka do Ciebie dociera? PHP załatało luki w wersjach 8.2.35, 8.3.36, 8.4.27 i 8.5.12. PHP 8.1 i starsze nie dostają już oficjalnych aktualizacji: dla 7.4, 8.0 i 8.1 PHP udostępniło minimalną poprawkę, którą trzeba ręcznie skompilować, a niektórzy dostawcy rozszerzonego wsparcia dodają ją do swoich pakietów. A każda wersja PrestaShop działa tylko z określonymi wersjami PHP:
Innymi słowy: jeśli Twój sklep to nie PrestaShop 9, nie ma oficjalnej aktualizacji do zainstalowania, bo Twoja wersja PrestaShop nie może działać z PHP, które ją ma. Zostaje minimalna poprawka, która wymaga pracy technika i nie ochroni Cię przed następną luką.
Wejdź do panelu sklepu i otwórz Zaawansowane → Informacja. Zobaczysz tam wersję PrestaShop, a nieco niżej wersję PHP. Z tymi dwiema liczbami wiesz już, w jakiej jesteś sytuacji.
Tym razem włączenie przerwy technicznej w panelu Cię nie ochroni: PHP odczytuje wizytę, zanim PrestaShop zdecyduje się pokazać stronę przerwy technicznej.
PHP proponuje kilka ustawień serwera, które zamykają część dróg ataku, i zaznacza, że nie czynią one sklepu bezpiecznym: robi to tylko aktualizacja. Sansec dodaje jeszcze jedno rozwiązanie awaryjne: zablokować na serwerze rodzaj przesyłania, którym wędrują pliki wgrywane na stronę. Ma ono swoją cenę: dopóki jest włączone, nikt nie może wgrywać plików do Twojego sklepu. Ani Ty zdjęć nowego produktu, ani Twoi klienci załącznika w formularzu kontaktowym. Sklep dalej normalnie sprzedaje.
To sposób na zyskanie kilku dni, a nie na zostanie tak na stałe. Następnym razem, gdy w PHP wyjdzie luka — a wyjdzie — Twój sklep znów będzie w tej samej sytuacji, bo PHP 8.1 i starsze nie dostają już aktualizacji.
To pytanie, które zawsze się odkłada, bo sklep działa. PHP2Shell pokazuje, co się dzieje, gdy odkłada się je za długo: dnia, w którym przychodzi problem, nie wybierasz Ty, a poprawka jest poza Twoim zasięgiem.
Przejście na PrestaShop 9 daje Ci PHP, które dostaje poprawki przez lata. Robi się to bez zamykania sklepu, zachowujesz produkty, klientów, zamówienia i pozycje w Google, a mały sklep kosztuje od 690 €. Wszystko opisujemy w tekście aktualizacja PrestaShop 1.7 lub 1.6 do 9 i na naszej stronie o migracji z PrestaShop 1.6 i 1.7 na 9.
A jeśli nie chcesz pilnować takich ostrzeżeń, właśnie to obejmuje opieka techniczna: ktoś aktualizuje za Ciebie PHP, PrestaShop i moduły i ostrzega Cię, zanim problem dotrze do Twojego sklepu.
Wersje z poprawką: 8.2.35, 8.3.36, 8.4.27 i 8.5.12. Dla 7.4, 8.0 i 8.1 PHP publikuje gałęzie z minimalną poprawką w kodzie źródłowym, podlinkowane w komunikacie; nie są to oficjalne wydania. Częściowe zabezpieczenia podane przez PHP, w php.ini, w puli PHP-FPM (php_admin_value) albo w konfiguracji serwera, nigdy przez ini_set() ani .user.ini, z restartem wszystkich procesów:
; CVE-2026-109618
memory_limit = -1
post_max_size = 32M ; 8M, jeśli nie wgrywa się plików
; CVE-2026-109619
session.upload_progress.enabled = 0
; tylko w PHP 8.5
fatal_error_backtraces = 0
PHP prosi, żeby nie zastępować memory_limit limitami systemowymi (RLIMIT_AS, RLIMIT_DATA). Rozwiązanie Sansec, czyli blokada multipart/form-data (psuje każde wgrywanie plików, także w panelu), w Apache:
RewriteEngine On
RewriteCond %{HTTP:Content-Type} multipart/form-data [NC]
RewriteRule ^ - [F]
W Nginx:
if ($http_content_type ~* "multipart/form-data") {
return 403;
}
Przy pakietach z repozytorium Remiego (typowych w RHEL, AlmaLinux czy Rocky) Sansec ostrzegał, że aktualizacja nie dociera tego samego dnia: sprawdź zainstalowaną wersję poleceniem php -v. Z Cloudflare ogranicz port 443 serwera źródłowego do jego zakresów IP; w przeciwnym razie atak trafia bezpośrednio na IP serwera.
Jeśli nie wiesz, w jakiej jesteś sytuacji, jeśli hosting Ci nie odpowiada albo jeśli Twój sklep to 1.6, 1.7 lub 8 i chcesz z tego wyjść, podaj nam swoją wersję PrestaShop i PHP. Powiemy Ci, co zrobić dziś, a jeśli trzeba, podamy zamkniętą cenę przejścia na PrestaShop 9.
Twój sklep PrestaShop pokazuje błąd 500 albo pustą stronę: co zrobić teraz, żeby nie pogorszyć sprawy, jak zobaczyć…
Co obejmuje opieka techniczna nad sklepem PrestaShop, ilu godzin potrzebujesz i ile to kosztuje rocznie: trzy plany od…
Aktualizacja PrestaShop 1.6 lub 1.7 do wersji 9 bez zamykania sklepu: co zachowasz, co dzieje się z modułami, Google i…
Moduł, aplikacja, serwer, który sprawia problemy, albo coś pilnego. Odpowiadamy w ciągu 24 godzin, ze stałą wyceną: cena i termin.