PHP2Shell i luki w Node.js: jak sprawdzić i załatać swój serwer krok po kroku

PHP2Shell i luki w Node.js: jak sprawdzić i załatać swój serwer krok po kroku (grafika wygenerowana przez AI)

PHP2Shell i luki w Node.js: jak sprawdzić i załatać swój serwer krok po kroku

21 października 2026 r. był pracowitym dniem dla każdego, kto utrzymuje strony i aplikacje. Projekt PHP wydał poprawki dla dwóch krytycznych luk nazwanych „PHP2Shell”, a Node.js — dla dziesięciu podatności. Jeśli masz stronę na WordPressie, sklep na PrestaShop, aplikację w Laravelu albo backend w Node.js, ten wpis jest dla Ciebie. Bez straszenia — konkretnie: co się stało, jak sprawdzić swoją wersję i jak ją zaktualizować.

PHP2Shell w pigułce

Chodzi o dwie podatności w samym interpreterze PHP: CVE-2026-109618 (błąd przy obsłudze braku pamięci) oraz CVE-2026-109619 (proces PHP może użyć danych z poprzedniego żądania, których pamięć została już zwolniona). Obie mają ocenę 9,2 w CVSS v4.0 i mogą pozwolić atakującemu na zdalne wykonanie kodu bez logowania (source: cloud.google.com, Responding to core PHP vulnerabilities).

Co ważne:

  • Problem nie leży w Twojej aplikacji. Aktualizacja WordPressa czy wtyczek nic tu nie zmieni — łatać trzeba samo PHP.
  • Dotyczy każdego sposobu uruchamiania PHP: PHP-FPM, mod_php w Apache, php-cgi, FrankenPHP i LiteSpeed.
  • Ataki już trwają. Według Datadog pierwsze próby wykorzystania pojawiły się jeszcze przed oficjalnym ujawnieniem, a teraz trwa masowe skanowanie internetu w poszukiwaniu podatnych serwerów (source: securitylabs.datadoghq.com, PHP2Shell).

Bezpieczne wersje to PHP 8.2.35, 8.3.36, 8.4.27 i 8.5.12. Podatne są wersje od 5.4 do 8.5.11. PHP 8.1 i starsze nie dostaną oficjalnych wydań z poprawką, bo nie są już wspierane.

Krok 1: sprawdź, której wersji PHP używasz

Na VPS lub serwerze dedykowanym wystarczy terminal:

php -v
# dla PHP-FPM sprawdź też wersję działającej usługi:
systemctl list-units --type=service | grep php

Pamiętaj, że na jednym serwerze może działać kilka wersji PHP naraz — każdą trzeba sprawdzić osobno.

Na hostingu wersję PHP sprawdzisz w panelu. W DirectAdmin wejdź w „Administracja domenami”, wybierz domenę i zobacz, która wersja jest przypisana do plików .php. Dokładną ścieżkę opisaliśmy w poradniku konfiguracja wersji PHP i zmiana wersji PHP na hostingu.

Krok 2: zaktualizuj PHP

Hosting. Jeśli Twoja strona działa na PHP 8.1 lub starszym, to najlepszy moment na przesiadkę. Na hostingu RapidDC w panelu DirectAdmin możesz wybrać m.in. PHP 8.2 lub 8.3. Zanim przełączysz wersję, zrób kopię plików i bazy danych — jak to zrobić, pokazujemy w artykule o backupie bazy danych. Po zmianie przeklikaj kluczowe podstrony i sprawdź logi błędów.

VPS i serwer dedykowany. Zaktualizuj pakiety systemowe:

# Debian / Ubuntu
sudo apt update && sudo apt upgrade
# AlmaLinux / Rocky Linux
sudo dnf upgrade

Dystrybucje często przenoszą poprawkę do starszego numeru wersji, więc php -v może nie pokazać „8.3.36”, mimo że łatka jest zainstalowana. Sprawdź komunikat bezpieczeństwa swojej dystrybucji.

Najważniejsze: zrestartuj PHP. Bez restartu stary, podatny kod dalej działa w pamięci:

sudo systemctl restart php8.3-fpm   # podaj swoją wersję
sudo systemctl restart apache2      # jeśli używasz mod_php

Krok 3: Node.js — aktualizacja do 22.23.4, 24.22.1 lub 26.12.1

Wydanie bezpieczeństwa Node.js z 21 października usuwa 10 luk: cztery o wysokiej wadze, trzy średnie i trzy niskie (source: nodejs.org, October 2026 Security Releases). Najgroźniejsza, CVE-2026-111497, to błąd w dekoderze Brotli, który może prowadzić do zdalnego wykonania kodu w aplikacjach dekompresujących dane Brotli. Są też dwie luki pozwalające obejść weryfikację nazwy hosta w certyfikacie TLS.

Sprawdź wersję i zaktualizuj:

node -v
# jeśli używasz nvm:
nvm install 24 && nvm alias default 24

Po aktualizacji zrestartuj aplikację (np. pm2 restart all) i przebuduj obrazy Dockera opartych na obrazie node. Node.js 20 i starsze nie dostały poprawek — jeśli wciąż z nich korzystasz, czas na migrację.

Nie możesz zaktualizować od ręki?

Jeśli aktualizacja PHP wymaga przygotowań, zastosuj środki tymczasowe wskazane przez Datadog: wyłącz session.upload_progress.enabled w konfiguracji PHP i ogranicz maksymalny rozmiar żądań na serwerze WWW lub proxy (np. client_max_body_size w nginx). Po zmianie zrestartuj wszystkie procesy PHP. To tylko plaster — jedynym pełnym rozwiązaniem jest aktualizacja.

Przejrzyj też logi. Podejrzane sygnały to błędy „Allowed memory size exhausted” z lokalizacją „Unknown on line 0”, nagłe awarie procesów (segfault) i bardzo duże żądania POST. Najgorszy sygnał to proces serwera WWW, który uruchamia powłokę systemową — wtedy warto potraktować serwer jako przejęty.

Podsumowanie

PHP2Shell to luka, której nie da się przeczekać: zaktualizuj PHP do 8.2.35, 8.3.36, 8.4.27 lub 8.5.12 (albo poprawionego pakietu dystrybucji), zrestartuj PHP-FPM i przejrzyj logi. Przy okazji podnieś Node.js do 22.23.4, 24.22.1 lub 26.12.1.

Jeśli administrujesz VPS-em lub serwerem dedykowanym w RapidDC i wolisz, żeby ktoś sprawdził go za Ciebie, zamów w usługach administracyjnych podstawowy audyt bezpieczeństwa serwera — obejmuje m.in. sprawdzenie znanych podatności i aktualności systemu. Masz pytania? Napisz do nas.

FAQ – najczęściej zadawane pytania o PHP2Shell i aktualizację PHP

Czy aktualizacja WordPressa chroni przed PHP2Shell?

Nie. Luki CVE-2026-109618 i CVE-2026-109619 dotyczą samego interpretera PHP, a nie WordPressa, motywów ani wtyczek. Żeby się zabezpieczyć, trzeba zaktualizować PHP do poprawionej wersji albo przełączyć stronę na nowszą, wspieraną gałąź.

Jak sprawdzić wersję PHP na moim serwerze?

Na VPS lub serwerze dedykowanym wpisz w terminalu php -v, a wersję usługi PHP-FPM sprawdzisz poleceniem systemctl. Na hostingu z DirectAdmin wersję przypisaną do domeny zobaczysz w sekcji „Administracja domenami”.

Moja strona działa na PHP 7.4. Co teraz?

PHP 7.4 nie dostanie oficjalnej poprawki, bo nie jest już wspierane. Zrób kopię zapasową, przetestuj stronę na PHP 8.2 lub nowszym i przełącz wersję. Jeśli kod wymaga poprawek, do czasu migracji ogranicz ryzyko środkami tymczasowymi.

Czy po aktualizacji PHP trzeba restartować serwer?

Nie trzeba restartować całej maszyny, ale trzeba ponownie uruchomić PHP-FPM lub serwer WWW z mod_php. Bez tego w pamięci nadal działa stara, podatna wersja PHP.

Do jakiej wersji zaktualizować Node.js?

Zależnie od linii: do 22.23.4, 24.22.1 lub 26.12.1. Wersje Node.js po zakończeniu wsparcia, w tym 20 i starsze, nie otrzymały poprawek, więc warto przenieść aplikację na wspieraną linię.


Artykuł powstał z wykorzystaniem narzędzi sztucznej inteligencji (AI) pod nadzorem zespołu RapidDC. Grafika ilustracyjna została wygenerowana przez AI.