21 października 2026 roku PHP poinformował o dwóch krytycznych podatnościach, które mogą umożliwić zdalne wykonanie kodu bez uwierzytelnienia. Tego samego dnia projekt wydał poprawki dla gałęzi 8.5, 8.4, 8.3 i 8.2 oraz zalecił użytkownikom niezwłoczną aktualizację. Podatne mogą być instalacje obsługujące żądania sieciowe, w tym PHP-FPM, Apache mod_php, php-cgi, FrankenPHP i LiteSpeed, poinformował PHP.

Poprawione wersje to PHP 8.5.12, 8.4.27, 8.3.36 i 8.2.35. Wydania usuwają CVE-2026-109618, związaną z uszkodzeniem stanu przy braku pamięci, oraz CVE-2026-109619 — błąd, przez który stan jednego żądania mógł pozostać w procesie roboczym i zostać wykorzystany podczas obsługi następnego. Podatne są wersje starsze niż wymienione. Projekt nie wydaje już własnych aktualizacji dla PHP 8.1 i starszych gałęzi, dlatego administratorzy takich systemów powinni sprawdzić dostępność poprawek u dostawcy dystrybucji lub usługodawcy wsparcia LTS.
Dwa błędy w cyklu życia żądania sieciowego
W przypadku CVE-2026-109618 obsługa żądania może zostać przerwana z powodu braku pamięci, zanim wewnętrzne dane zostaną w pełni zainicjowane. Podczas zamykania PHP może wtedy odwołać się do nieprawidłowego stanu. W advisory deweloperzy opisują między innymi scenariusze z żądaniami multipart i wyczerpaniem limitu pamięci. W przypadku Apache mod_php potwierdzono scenariusz, w którym problem pojawia się jeszcze przed uruchomieniem kodu aplikacji; PHP zaznacza też, że ryzyko w tej konfiguracji jest większe.
CVE-2026-109619 dotyczy stanu zachowywanego przez proces roboczy między żądaniami. Jeśli operacja zakończy się błędem przed wyczyszczeniem danych, pamięć poprzedniego żądania zostaje zwolniona, ale odwołanie do niej pozostaje. Kolejne żądanie obsługiwane przez ten sam proces może odwołać się do nieaktualnego stanu przed standardową inicjalizacją. W advisory projektu PHP opisuje potwierdzone ścieżki wykorzystania przez wczesne operacje diagnostyczne i obsługę postępu przesyłania plików; możliwość ich wystąpienia zależy od konfiguracji, aplikacji i używanych rozszerzeń.
Obie podatności otrzymały ocenę 9,2 w skali CVSS 4.0. Według PHP potwierdzony wpływ obejmuje wykonanie kodu z uprawnieniami procesu obsługującego żądania. W advisory dotyczącym błędu braku pamięci potwierdzono pełny scenariusz HTTP przeciwko mod_php; w odniesieniu do PHP-FPM źródło opisuje analizę kodu i warunki podatności, dlatego podczas oceny konkretnego wdrożenia należy rozróżniać te informacje.
Co powinni sprawdzić administratorzy
Najpierw ustal wersje PHP, które faktycznie obsługują ruch sieciowy: na jednym serwerze mogą działać osobne kompilacje CLI, FPM i Apache, a kontenery oraz węzły klastra są aktualizowane niezależnie. Dla każdej wspieranej gałęzi zainstaluj odpowiednie wydanie z poprawką albo pakiet dostawcy zawierający potwierdzoną łatkę. Następnie uruchom ponownie wszystkie procesy PHP i sprawdź ich wersje po restarcie — samo zastąpienie plików bez ponownego uruchomienia pozostawia działające stare procesy.
W przypadku PHP 8.1 i starszych wersji sprawdź status wsparcia oraz dostępność poprawki wstecznej u dostawcy dystrybucji lub usługodawcy LTS. Jeśli takiego pakietu nie ma, zaplanuj migrację do wspieranej gałęzi. PHP informuje, że dostawcy dystrybucji Linuksa otrzymali poprawki z wyprzedzeniem; numer wersji ich pakietu może różnić się od oficjalnego wydania PHP, dlatego sprawdzaj, czy konkretna poprawka została w nim uwzględniona.
Ustawienia tymczasowe i filtrowanie żądań mogą ograniczyć niektóre ścieżki ataku, ale projekt określa aktualizację jako jedyny pełny sposób usunięcia obu problemów. Praktycznym priorytetem dla zespołów jest inwentaryzacja wszystkich procesów obsługujących żądania, instalacja poprawionego pakietu, ponowne uruchomienie procesów i sprawdzenie wyniku na każdym węźle. To właśnie te działania usuwają potwierdzone podatności, zamiast polegania wyłącznie na konfiguracji serwera WWW.