21 października 2026 roku projekt PHP wydał poprawki dla dwóch krytycznych luk w samym PHP. Obie mają ocenę CVSS 9.2, a badacze, którzy je znaleźli, nazywają je php2shell. Problem nie leży w PrestaShop ani w żadnym module, ale ponieważ każdy sklep PrestaShop działa na PHP, dotyczy to praktycznie każdego sklepu. Poniżej: co się dzieje, które wersje PHP są poprawione i co powinieneś zrobić dzisiaj.
W czym tkwi problem?
Dwie luki znajdują się w środowisku uruchomieniowym PHP, czyli warstwie uruchamianej przed własnym kodem PrestaShop. Zgodnie z ogłoszeniem, anatakujący może ich użyć do zawieszania procesów PHP, odczytu poufnych danych lub, w najgorszym przypadku, do uruchomienia kodu na serwerze bez logowania.
- CVE-2026-109618: gdy PHP wyczerpie pamięć, dane żądania mogą pozostać w połowie zainicjowane, a późniejsze czyszczenie traktuje te niekompletne dane jako poprawne.
- CVE-2026-109619: wewnętrzny stan żądania może przetrwać po zwolnieniu jego pamięci, więc późniejsze żądanie w tym samym procesie roboczym PHP może użyć tego przestarzałego stanu.
Każda instalacja PHP obsługująca żądania internetowe jest zagrożona: PHP-FPM, Apache z mod_php, php-cgi, FrankenPHP i LiteSpeed. Ryzyko jest najwyższe w przypadku mod_php.
Dlaczego aktualizacja PrestaShop nie pomaga?
Aktualizacja PrestaShop lub modułów tego nie naprawia. Ochrona wewnątrz aplikacji nie zatrzyma ataku, który ma miejsce przed uruchomieniem kodu aplikacji. Jedyną prawdziwą poprawką jest zaktualizowana wersja PHP na serwerze.
Które wersje PHP są poprawione?
| Gałąź PHP | Wersja poprawiona |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
W przypadku PHP 7.4, 8.0 i 8.1 projekt PHP opublikował minimalne backporty. Zwróć uwagę, że dystrybucje Linuksa czasami stosują poprawkę bez zmiany numeru wersji, więc wersja wyglądająca na starszą nadal może być zpatchowana. Dlatego zamiast polegać tylko na numerze, powinieneś poprosić hosting o potwierdzenie.
Co powinieneś zrobić teraz
1. Sprawdź swoją wersję PHP
W zapleczu PrestaShop przejdź do Parametry zaawansowane > Informacje. Tam zobaczysz, na jakiej wersji PHP działa Twój sklep.
2. Poproś hosting o pisemne potwierdzenie
Skontaktuj się z dostawcą hostingu i zapytaj, czy poprawka dla CVE-2026-109618 i CVE-2026-109619 została zastosowana na Twoim serwerze. Poproś o odpowiedź na piśmie.
3. Czy zarządzasz własnym serwerem?
- Zainstaluj zaktualizowane pakiety PHP ze swojej dystrybucji lub oficjalnych wydajów PHP.
- Zrestartuj każdy proces PHP: pule PHP-FPM, Apache, LiteSpeed i procesy robocze FrankenPHP. Aktualizacja, która jest zainstalowana, ale nie załadowana, nie chroni Cię.
- W dniu wydania projekt PHP odradzał czekać na utrzymywane przez wolontariuszy repozytorium
rpms.remirepo.neti zalecał pakiety dystrybucyjne lub kompilację ze źródeł. - Używasz Dockera? Przebuduj swoje obrazy na zaktualizowanym obrazie bazowym i wdrażaj je ponownie.
4. Nadal używasz PHP 8.1 lub starszego?
Zapytaj hosting, czy Twoja wersja PHP została zpatchowana. Aktualizacja PrestaShop do wersji obsługującej nowsze PHP to oddzielne, długoterminowe zadanie, a nie awaryjna poprawka. Planowanie: PrestaShop 9 obsługuje PHP od 8.1 do 8.5, a PHP 8.2 osiąga koniec wsparcia 31 grudnia 2026 roku. Sklepy PrestaShop 1.7 i 8.x zazwyczaj nadal działają na PHP 7.x lub 8.1.
Środki tymczasowe, jeśli jeszcze nie możesz zaktualizować
Te środki są przeznaczone dla zespołów technicznych. Przetestuj je najpierw na kopii testowej; zmniejszają one ryzyko, ale nie zastępują aktualizacji PHP.
Dla CVE-2026-109618:
- Obniż
post_max_size: zalecenie to8M, jeśli sklep nie akceptuje przesyłania plików, i32M, jeśli akceptuje. Utrzymujupload_max_filesizeponiżej tej wartości. - Egzekwuj również limity rozmiaru żądań na serwerze WWW lub reverse proxy.
Dla CVE-2026-109619:
- Ustaw
session.upload_progress.enabled=0wphp.ini, puli PHP-FPM lub konfiguracji serwera i zrestartuj wszystkie procesy robocze.ini_set()lub.user.ininie wystarczy. - W PHP 8.5 ustaw również
fatal_error_backtraces=0i zrestartuj procesy robocze.
Ukrywanie błędów za pomocą error_reporting, display_errors lub @ nie pomaga. Pełna lista środków znajduje się w oficjalnym biuletynie bezpieczeństwa PHP.
Czy zapora webowa (WAF) pomaga?
Cloudflare wdrożył dedykowane reguły WAF dla php2shell, aktywne domyślnie od 21 października. W płatnym planie upewnij się, że zarządzany zestaw reguł jest ustawiony na block. Pamiętaj, że WAF chroni tylko ruch, który przez niego przechodzi: upewnij się, że Twój serwer akceptuje ruch internetowy wyłącznie od dostawcy WAF. WAF to dodatkowowa warstwa, a nie zastępstwo dla aktualizacji PHP.
Potrzebujesz pomocy?
Nie masz pewności, czy Twój serwer został zpatchowany, czy nadal korzystasz ze starej wersji PHP? Sprawdzimy wersję i konfigurację PHP, zadamy właściwe pytania Twojemu hostingowi i pomożemy zaplanować przejście na wspieraną wersję PHP i PrestaShop. Przeczytaj więcej o naszej usłudze bezpieczeństwa, zaplanuj aktualizację lub zadaj nam pytanie.
Źródło: „Critical PHP security updates: what PrestaShop users need to know” na build.prestashop-project.org (21 października 2026 r.) oraz biuletyny bezpieczeństwa PHP dla CVE-2026-109618 i CVE-2026-109619.