Przejdź do treści

Jak sprawdzić, czy Twoje PHP ma łatkę na php2shell

21 października zespół PHP wydał wersje 8.2.35, 8.3.36, 8.4.27 i 8.5.12 z poprawkami dwóch luk nazwanych php2shell, CVE-2026-109618 i CVE-2026-109619. Pozwalają wykonać kod na serwerze bez logowania i są już wykorzystywane w atakach. Jeśli Twoja strona albo sklep działa na PHP, sprawdź w tym tygodniu, czy poprawkę ma proces, który naprawdę obsługuje stronę.

W skrócie

  • Luki są wykorzystywane, więc łatkę wgraj teraz, a nie przy najbliższym przeglądzie.
  • Po aktualizacji zrestartuj PHP-FPM albo Apache’a, a obrazy kontenerów zbuduj od nowa.
  • Zespół PHP wydaje poprawki dla PHP 8.2 tylko do 31 grudnia 2026.

Luki są już wykorzystywane

Informacja o lukach i dacie wydania wyciekła dzień przed planowanym wydaniem. Według The Hacker News firma watchTowr zgłosiła aktywne próby ataku już 19 minut po publikacji poprawek, a Cloudflare do rana 22 października naliczył ich miliony.

26 października BleepingComputer opisał potwierdzone udane przejęcie serwera. Stało się to na serwerze-pułapce z Apache’em, mod_php i PHP 8.4.26, a wynik niezależnie potwierdził badacz Marcus Hutchins. Dzień wcześniej firma Aviatrix opisała włamanie do niewymienionej z nazwy instytucji rządowej w Europie. Atakujący zostawili tam na niezałatanym serwerze web shell, czyli furtkę do dalszego dostępu.

Najbardziej narażone są serwery z mod_php w Apache’u, ale luka dotyczy też PHP-FPM, php-cgi, FrankenPHP i LiteSpeed. Przy milionach prób taki ruch może trafić do każdego niezałatanego serwera z PHP, także małego.

Co sprawdzić w tym tygodniu

Sama zainstalowana paczka nie wystarczy. Sprawdź po kolei:

  1. Wersję paczki, a nie wynik php -v. Ubuntu 24.04 przeniosło poprawkę do swojego PHP 8.3.6, więc php -v dalej pokaże 8.3.6. Łatka jest w paczce 8.3.6-0ubuntu0.24.04.13 lub nowszej. Debian 12 ma 8.2.35, a RHEL 9 dostał tę wersję w RHSA-2026:87072.
  2. Restart. Workery PHP-FPM i Apache z mod_php trzymają stary kod w pamięci, dopóki ich nie zrestartujesz.
  3. Kontenery. Aktualizacja hosta nie zmienia PHP w obrazie, więc zbuduj go z docker build --pull i wdróż. Jeśli w Dockerfile jest przypięta wersja, na przykład php:8.2.34-fpm, najpierw ją podnieś.
  4. Hosting. Na hostingu współdzielonym PHP łata dostawca, więc zapytaj go, czy poprawka już jest. Aktualizacja WordPressa nie aktualizuje PHP, bo PHP to osobny silnik, na którym działa strona.

Polecenia dla PHP z paczek Ubuntu 24.04 i RHEL 9:

# Ubuntu 24.04 (Debian 12: zamień 8.3 na 8.2, paczka 8.2.35-1~deb12u1 lub nowsza)
dpkg-query -W php8.3-fpm   # 8.3.6-0ubuntu0.24.04.13 lub nowsza
sudo ls -l /proc/$(pgrep -o php-fpm8.3)/exe
sudo systemctl restart php8.3-fpm

# RHEL 9, moduł php:8.2
rpm -q php-fpm   # 8.2.35 lub nowsza
sudo ls -l /proc/$(pgrep -o php-fpm)/exe
sudo systemctl restart php-fpm

Jeśli przy ścieżce widzisz (deleted), proces działa na wersji sprzed aktualizacji i trzeba go zrestartować. Przy mod_php restartujesz Apache’a: systemctl restart apache2 na Debianie i Ubuntu, systemctl restart httpd na RHEL.

PHP 8.2 dostaje poprawki do 31 grudnia

Według harmonogramu PHP poprawki bezpieczeństwa dla PHP 8.2 kończą się 31 grudnia 2026. Jeśli podobna luka wyjdzie w styczniu, zespół PHP nie wyda już wersji dla 8.2, więc nie dostaną jej też oficjalne obrazy Dockera. Tak było w tym tygodniu z PHP 8.1 i starszymi, dla których pojawiły się tylko łatki do kodu źródłowego.

Debian, Red Hat i część hostingów przenoszą poprawki do starszych wersji, ale według własnych terminów. Jeśli masz 8.2 z ich paczek, zapytaj dostawcę, do kiedy będzie je wydawał. Jeśli z php.net albo z oficjalnego obrazu, zaplanuj przejście przed końcem roku. Wybrałbym od razu 8.4, które ma poprawki do końca 2028, o rok dłużej niż 8.3. Najpierw staging, potem produkcja.

Kto decyduje, gdy nie da się od razu załatać

Nie zawsze da się zaktualizować od razu. Wtedy ktoś musi wybrać między obejściem a wyłączeniem serwisu. Obejście to na przykład wyłączenie session.upload_progress.enabled, mniejszy limit rozmiaru żądań albo reguła w WAF. Nie zastępuje łatki, ale skraca czas, w którym serwer jest łatwym celem. Część firm wyłączyła strony na kilka godzin i to była rozsądna decyzja.

Spisz na jednej kartce, kto u Ciebie podejmuje taką decyzję, jak go szybko złapać, które usługi można wyłączyć bez dużej szkody i kto zrobi samą aktualizację. W mojej usłudze utrzymania dostajesz alerty i reakcję w godzinach pracy, a awariami krytycznymi zajmuję się także wieczorem.

3 sposoby, w jakie mogę pomóc