21 października 2026 roku zespół PHP wydał awaryjne aktualizacje bezpieczeństwa PHP 8.5.12, 8.4.27, 8.3.36 oraz 8.2.35. Zamykają one dwie krytyczne luki, które umożliwiają zdalne wykonanie kodu bez uwierzytelnienia: CVE-2026-109618 i CVE-2026-109619. Obie mają ocenę CVSS v4.0 9.2. W mediach nazywa się je razem PHP2Shell.
Co się stało
Obie podatności wiążą się z tym, że PHP może pozostawić pamięć w uszkodzonym stanie, jeśli żądanie zakończy się awaryjnie:
- CVE-2026-109618 (GHSA-w8hw-w9fx-j79w): RCE przez uszkodzenie pamięci przy braku pamięci (OOM). Jeśli żądanie osiągnie
memory_limitw nieodpowiednim momencie, wewnętrzne dane żądania pozostają tylko częściowo zainicjalizowane. Podczas czyszczenia żądania PHP może uznać je za poprawne. W Apache z mod_php atak można uruchomić nieuwierzytelnionym żądaniem jeszcze przed wykonaniem kodu aplikacji. Według PHP Foundation pełne zdalne wykonanie kodu zademonstrowano z ustawieniami domyślnymi. W PHP-FPM RCE potwierdzono przez ścieżki w kodzie aplikacji. - CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp): RCE przez „przestarzały" stan globalny. Błąd krytyczny w nieodpowiednim momencie może pozostawić stan wewnętrzny wskazujący na już zwolnioną pamięć poprzedniego żądania. Następne żądanie w tym samym workerze może wykorzystać tę pamięć (use-after-free). Skutki: wyciek danych z pamięci, awaria workera oraz wykonanie kodu.
Kogo to dotyczy
Według zespołu PHP zagrożone są wszystkie instalacje PHP obsługujące żądania sieciowe: PHP-FPM, Apache z mod_php, php-cgi, FrankenPHP i LiteSpeed. Najwyższe ryzyko dotyczy mod_php.
Podatne wersje (według biuletynu AWS):
- PHP 8.5.0–8.5.11: naprawiono w 8.5.12
- PHP 8.4.0–8.4.26: naprawiono w 8.4.27
- PHP 8.3.0–8.3.35: naprawiono w 8.3.36
- PHP 8.2.0–8.2.34: naprawiono w 8.2.35
- PHP 8.1 i starsze nie są już wspierane przez projekt PHP. Zespół bezpieczeństwa PHP opublikował minimalne backporty kodu źródłowego dla 7.4, 8.0 i 8.1. Sprawdź także aktualizacje od swojego dystrybutora lub dostawcy LTS.
Poprawki trafiły również do testowej kompilacji PHP 8.6.0 RC4.
Jak poważne jest to zagrożenie
PHP działa na większości stron na świecie, m.in. na WordPress, Joomla, Drupal, Laravel i Symfony. Według BleepingComputer Cloudflare jeszcze przed wydaniem poprawek odnotowywał pierwsze próby ataków i wdrożył tymczasowe reguły WAF. Brytyjski NCSC wezwał do natychmiastowej aktualizacji lub tymczasowego wyłączenia podatnych systemów. Twórcy PHP podkreślają, że nie ma pełnych obejść: niezawodnie chroni wyłącznie aktualizacja.
Co zrobić teraz
- Sprawdź wersję PHP. W konsoli wykonaj
php -v. Dla serwera WWW wersja może się różnić, więc sprawdź ją przezphpinfo()lub w panelu hostingu. Dla FPM wykonajphp-fpm -v(lub np.php-fpm8.3 -v). - Zaktualizuj do 8.5.12, 8.4.27, 8.3.36 lub 8.2.35. W Linuksie zainstaluj zaktualizowane pakiety swojego dystrybutora (dystrybutory otrzymały poprawki wcześniej), np.
apt update && apt upgradelubdnf upgrade php*. - Zrestartuj wszystkie workery PHP-FPM, Apache i innych SAPI. Przebuduj i ponownie wdróż obrazy Docker.
- Jeśli masz PHP 8.1 lub starsze, zaplanuj migrację do wspieranej gałęzi. Zwróć też uwagę, że wsparcie PHP 8.2 kończy się 31 grudnia 2026 roku.
Środki tymczasowe, jeśli nie można natychmiast zaktualizować (zmniejszają jedynie ryzyko, ale go nie eliminują):
- Dla CVE-2026-109618: ustaw
memory_limit=-1przezphp_admin_value, aby aplikacja nie mogła zmienić tej wartości. Zmniejszpost_max_sizedo 8M (lub do 32M, jeśli potrzebne jest przesyłanie plików). Ogranicz rozmiar i złożoność żądań na poziomie serwera WWW lub proxy. - Dla CVE-2026-109619: ustaw
session.upload_progress.enabled=0w php.ini lub w konfiguracji puli FPM i zrestartuj workery. W PHP 8.5 ustaw takżefatal_error_backtraces=0.
Źródła
- php.net: Security advisory: Critical remote code execution vulnerabilities
- The PHP Foundation: Today's PHP Security Release
- AWS Security Bulletin 2026-143-AWS
- BleepingComputer: PHP ships emergency patches for critical PHP2Shell flaws
- Canadian Centre for Cyber Security: AL26-026
Zaktualizujemy Twój projekt do nowej wersji PHP
Zespół CRM Go aktualizuje projekty klientów do aktualnych, zabezpieczonych wersji PHP. Sprawdzamy zgodność kodu, aktualizujemy zależności i frameworki, testujemy projekt i wdrażamy aktualizacje bez przestoju strony. Jeśli nie masz pewności, czy Twój serwer jest już zabezpieczony przed PHP2Shell, napisz do nas, a pomożemy.
