
Stare PHP na hostingu to otwarte drzwi dla hakera. Jak sprawdzić wersję i przejść na PHP 8.3?
Jeśli w ostatnich dniach widziałeś nagłówki o „krytycznych lukach w PHP”, to nie była przesada. 21 października 2026 r. wyszły poprawki dla dwóch podatności w samym PHP — CVE-2026-109618 i CVE-2026-109619, znanych jako „PHP2Shell”. Sprawa była na tyle poważna, że Centralny Ośrodek Informatyki na wszelki wypadek wyłączył część stron Biuletynu Informacji Publicznej, a urzędy w kilku krajach Europy, m.in. w Niemczech, Francji, Holandii i Wielkiej Brytanii, czasowo zdjęły swoje serwisy, żeby spokojnie je załatać.
Najważniejsze w skrócie: niezałatane PHP pozwala przejąć stronę bez znajomości loginu i hasła. Najbardziej narażeni są ci, którzy wciąż siedzą na PHP 7.x, 8.0 lub 8.1 albo na 8.2 bez ostatniej poprawki. Poniżej wyjaśniamy, jak działa zagrożenie, co realnie grozi Twojej stronie i jak w kilku krokach przejść na bezpieczne PHP 8.3.
Anatomia zagrożenia – czym są luki RCE i dlaczego wywołały panikę w sieci?
RCE (Remote Code Execution) to sytuacja, w której ktoś z zewnątrz może uruchomić na Twoim serwerze własny kod. W praktyce: robi z Twoją stroną, co chce — od podmiany treści po wyciągnięcie bazy danych.
Obie luki PHP2Shell dostały ocenę 9,2 na 10 w skali CVSS v4.0 (source: cloud.google.com, Responding to core PHP vulnerabilities). Bez technicznego żargonu: pierwsza dotyczy tego, jak PHP zachowuje się, gdy zabraknie mu pamięci, a druga — sytuacji, w której PHP przy kolejnym żądaniu sięga po „resztki” poprzedniego. Oba błędy da się wykorzystać do przejęcia serwera.
Haker nie potrzebuje hasła. To najgorsza wiadomość. Nie musi mieć konta w WordPressie, PrestaShop ani w panelu admina — wystarczy, że wyśle do Twojej strony odpowiednio spreparowane żądanie. Błąd siedzi w PHP, a nie we wtyczkach, więc nawet idealnie zaktualizowany WordPress nie jest bezpieczny na starym PHP.
Stare wersje nie dostaną łatki. Poprawione wydania to PHP 8.2.35, 8.3.36, 8.4.27 i 8.5.12. PHP 8.1 i starsze nie są już wspierane przez twórców języka (End-of-Life), więc oficjalnej poprawki dla nich nie będzie.
Nikt nie atakuje ręcznie. Boty skanują internet bez przerwy i sprawdzają tysiące stron w poszukiwaniu podatnych wersji. Według Datadog próby ataków zaczęły się jeszcze przed oficjalnym ujawnieniem luk (source: securitylabs.datadoghq.com, PHP2Shell). Dla bota nie ma znaczenia, czy to duży sklep, czy blog z przepisami.
Jakie ryzyko niesie nieaktualne PHP dla sklepu e-commerce i strony firmy?
- Wyciek bazy danych. Dane klientów, adresy e-mail, hasła i historia zamówień mogą trafić do przestępców. Wyciek danych osobowych oznacza obowiązek zgłoszenia do UODO i ryzyko kar z RODO.
- Złośliwy kod na stronie. Atakujący dokleja skrypty przekierowujące odwiedzających na fałszywe strony albo podmienia bramkę płatności na swoją. Często zostawia też webshell, czyli „tylne drzwi”, które działają nawet po zmianie haseł.
- Twój serwer pracuje dla kogoś innego. Koparki kryptowalut, wysyłka spamu, udział w botnecie — to wszystko zjada zasoby hostingu. Efekt: wolna strona, blokada konta za nadużycia i adres IP na czarnych listach (RBL), przez co Twoje maile lądują w spamie.
- Ostrzeżenia w Google i utrata klientów. Zainfekowana strona może dostać ostrzeżenie w przeglądarce i w Google Search Console. Klient, który raz zobaczy czerwony ekran, rzadko wraca.
Jak sprawdzić, z jakiej wersji PHP korzysta Twoja strona?
W panelu DirectAdmin. Zaloguj się, wejdź w „Administracja domenami”, wybierz domenę i sprawdź wersję PHP przypisaną do plików .php. Dokładne zrzuty kroków znajdziesz w poradniku konfiguracja wersji PHP i zmiana wersji PHP na hostingu. W cPanelu szukaj opcji „Wybór wersji PHP” w sekcji „Oprogramowanie”.
W WordPressie. Kokpit → Narzędzia → Stan witryny → Informacje → Serwer.
W PrestaShop. Panel administracyjny → Parametry zaawansowane → Informacja.
Plikiem info.php. Wgraj do katalogu strony plik info.php o treści:
<?php phpinfo();
Otwórz twojadomena.pl/info.php i odczytaj wersję. Od razu potem usuń plik — zdradza konfigurację serwera i ułatwia atak.
Na VPS lub serwerze dedykowanym wystarczy terminal:
php -v
systemctl list-units --type=service | grep php
Zwracaj uwagę na pełny numer wydania, a nie tylko gałąź — PHP 8.3.35 wciąż jest podatne, bezpieczne jest dopiero 8.3.36. Pakiety z dystrybucji Linuksa mogą mieć poprawkę pod innym numerem, więc sprawdź komunikat bezpieczeństwa swojej dystrybucji.
Które wersje PHP są jeszcze wspierane?
| Wersja PHP | Status | Łatki bezpieczeństwa do | Ryzyko |
|---|---|---|---|
| 5.x i 7.x | EOL — brak wsparcia | — | krytyczne |
| 8.0 | EOL — brak wsparcia | — | krytyczne |
| 8.1 | EOL — brak wsparcia | zakończone 31.12.2025 | krytyczne |
| 8.2 | tylko łatki bezpieczeństwa | 31.12.2026 | wysokie bez 8.2.35, koniec wsparcia za ok. 2 miesiące |
| 8.3 | tylko łatki bezpieczeństwa | 31.12.2027 | niskie od 8.3.36 |
| 8.4 | pełne wsparcie | 31.12.2028 | niskie od 8.4.27 |
| 8.5 | pełne wsparcie | 31.12.2029 | niskie od 8.5.12 |
Daty według harmonogramu wsparcia PHP (php.net/supported-versions).
Dlaczego docelowym standardem powinno być PHP 8.3 (lub nowsze)?
Łatki jeszcze długo. PHP 8.2 dostało poprawkę, ale jego wsparcie kończy się 31 grudnia 2026 r. Przesiadka na 8.2 to odłożenie problemu o dwa miesiące. PHP 8.3 będzie łatane do końca 2027 r., a 8.4 i 8.5 jeszcze dłużej.
Szybsza strona. Każda kolejna wersja PHP 8 to optymalizacje silnika: zwykle szybsze generowanie stron, więcej obsłużonych żądań na sekundę i mniejsze zużycie CPU oraz RAM. Na hostingu współdzielonym to realna różnica w czasie ładowania.
Nowe wtyczki i frameworki. Aktualne wersje wtyczek, motywów, Laravela czy Symfony coraz częściej wymagają nowego PHP. Zostając przy starej wersji, blokujesz sobie również aktualizacje aplikacji — a to kolejne luki.
Plan działania – co zrobić, jeśli nadal używasz starej wersji PHP?
- Zrób pełny backup — pliki i baza danych. Jak to zrobić, pokazujemy w artykule o backupie bazy danych.
- Sprawdź kompatybilność. Zajrzyj na strony motywu i wtyczek: czy obsługują PHP 8.3? Własne moduły warto przejrzeć pod kątem przestarzałych funkcji.
- Przetestuj na kopii strony (staging). Przełącz PHP na kopii i przeklikaj logowanie, koszyk, formularze i płatności.
- Zaktualizuj CMS, wtyczki i szablon do najnowszych wersji — stare wersje często nie działają na nowym PHP.
- Przełącz PHP w panelu na 8.3 i obserwuj logi błędów przez pierwsze godziny.
Na VPS i serwerze dedykowanym zaktualizuj pakiety (sudo apt update && sudo apt upgrade lub sudo dnf upgrade), a potem zrestartuj PHP-FPM (np. sudo systemctl restart php8.3-fpm) — bez restartu stara, podatna wersja dalej działa w pamięci. Przy okazji zaktualizuj też Node.js: 21 października wyszły poprawki dla 10 podatności w wersjach 22.23.4, 24.22.1 i 26.12.1.
Podsumowanie i rekomendacja eksperta
Zwlekanie z aktualizacją PHP to dziś zaproszenie dla botów, które przejmują strony bez zgadywania haseł. Nasza rekomendacja: PHP 8.3 lub nowsze, zawsze w najnowszym wydaniu.
Masz hosting w RapidDC? Wersję PHP — w tym PHP 8.3 — zmienisz samodzielnie w panelu DirectAdmin w kilka kliknięć. Nie wiesz, czy Twoja strona to wytrzyma? Napisz do nas, a pomożemy ocenić kompatybilność. Jeśli masz VPS lub serwer dedykowany, w usługach administracyjnych zamówisz podstawowy audyt bezpieczeństwa serwera, który obejmuje m.in. sprawdzenie znanych podatności i aktualności systemu.
FAQ – najczęściej zadawane pytania o zmianę wersji PHP na 8.3
Mam PHP 8.3. Czy jestem bezpieczny?
Tylko jeśli to wydanie 8.3.36 lub nowsze albo pakiet dystrybucji z poprawką. Luki PHP2Shell dotyczą wszystkich wersji od 5.4 do 8.5.11, więc liczy się pełny numer wersji, a nie sama gałąź.
Czy zaktualizowany WordPress chroni przed PHP2Shell?
Nie. Luki są w samym PHP, a nie w WordPressie czy wtyczkach. Aktualny WordPress na starym PHP nadal jest podatny, dlatego trzeba podnieść wersję PHP.
Co zrobić, gdy po zmianie PHP strona przestanie działać?
Wróć do poprzedniej wersji w panelu, sprawdź logi błędów i zaktualizuj motyw oraz wtyczki, które powodują problem. Następnie spróbuj ponownie, najlepiej najpierw na kopii strony.
Czy przejście na PHP 8.2 wystarczy?
Na chwilę. PHP 8.2 ma poprawkę, ale jego wsparcie kończy się 31 grudnia 2026 r., więc za dwa miesiące czeka Cię kolejna migracja. Lepiej od razu przejść na PHP 8.3 lub nowsze.
Jak sprawdzić wersję PHP bez dostępu do panelu?
W WordPressie wejdź w Narzędzia → Stan witryny → Informacje → Serwer, a w PrestaShop w Parametry zaawansowane → Informacja. Możesz też wgrać plik z funkcją phpinfo() — pamiętaj, by usunąć go zaraz po sprawdzeniu.
Artykuł powstał z wykorzystaniem narzędzi sztucznej inteligencji (AI) pod nadzorem zespołu RapidDC. Grafika ilustracyjna została wygenerowana przez AI.
