Zespół bezpieczeństwa PHP ogłosił nadzwyczajne wydanie na 21 października 2026, godz. 14:00 UTC (16:00 czasu polskiego). Powód: dwie krytyczne podatności, obie ocenione na CVSS v4.0 9.2. Identyfikatory w komunikatach CERT-EU: CVE-2026-109618 i CVE-2026-109619. Publiczne raporty opisują je jako RCE. Zespół PHP przed wydaniem nie opublikował pełnych szczegółów technicznych.
Źródła: zapowiedź PHP, CERT-EU Security Advisory 2026-018. Ten wpis to checklista dla operatora: spis wersji, okno aktualizacji, plan dla gałęzi bez wsparcia.
Co wiadomo na dziś
20 października szczegóły wyciekły przed embargiem. PHP przyspieszyło komunikację i zastrzegło wcześniejsze wydanie, jeśli pojawią się dowody wykorzystania w atakach. Cloudflare zgłaszało wczesne próby. Na moment przygotowania tego tekstu oficjalne tarballe poprawek mogą jeszcze nie być w kanale php.net.
Oczekiwane poprawione wersje w gałęziach wspieranych (raporty przed wydaniem, m.in. Kevin Beaumont):
- PHP 8.5.x → 8.5.12
- PHP 8.4.x → 8.4.27
- PHP 8.3.x → 8.3.36
- PHP 8.2.x → 8.2.35
Gałęzie EOL (PHP 5 do 8.1) według tych samych raportów nie dostaną oficjalnej poprawki upstream. Trzeba migracji na wspierane 8.x albo backportu od dystrybucji lub dostawcy ELS.
Aktualizacja WordPressa, Magento, PrestaShop albo wtyczek nie zastępuje aktualizacji interpretera PHP.
Kogo to dotyczy
Każdy host z php-fpm, mod_php albo PHP w kontenerze: sklep Magento, WordPress, Drupal, Laravel, Symfony, panele i appliance z wbudowanym PHP. Spisz też obrazy Docker i maszyny staging, nie tylko produkcję.
CERT-EU zaleca identyfikację aplikacji na PHP i przygotowanie do natychmiastowego wdrożenia. Gdy patch nie wejdzie od razu: rozważ ograniczenie dostępu z internetu do aplikacji PHP, aż poprawka będzie na hoście.
Co zrobić teraz
1. Spis wersji. Na każdym hoście i w każdym kontenerze:
php -v
command -v php-fpm && php-fpm -v
ls /etc/php/*/fpm 2>/dev/null
docker ps --format '{{.Names}} {{.Image}}' | grep -i phpZapisz wynik obok nazwy aplikacji i czy endpoint jest publiczny.
2. Kopia i okno. Przed podmianą paczki: kopia aplikacji i bazy, krótki smoke test koszyka albo logowania na stagingu z tą samą gałęzią PHP. Na produkcji ustal okno z właścicielem sklepu.
3. Po publikacji poprawki. Wgraj 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 (albo paczkę dystrybucji z backportem). Potwierdź:
php -v
# szukasz numeru z poprawką, nie tylko gałęzi 8.x
systemctl restart php*-fpm
# albo restart kontenera / puli PHP w panelu hostinguSprawdź stronę statusu dystrybucji (Debian, Ubuntu, RHEL, CloudLinux, panel hostingu). Paczki vendor często wychodzą godzinę lub dwie po tarballach PHP.
4. Gałąź bez wsparcia. Jeśli php -v pokazuje 7.x albo 8.0/8.1 bez ELS: plan migracji na 8.2+ ma pierwszeństwo przed „czekamy na patch”. Upstream tych gałęzi według raportów nie łatuje tych CVE.
5. Warstwa krawędzi. Reguły WAF (np. Cloudflare) ograniczają znane wektory HTTP. Nie zastępują aktualizacji PHP. Po patchu zostaw monitoring logów FPM i reverse proxy pod kątem nietypowych POST.
Opieka warstw: security. Sklepy na PHP: ecommerce. Dyżur hostów: administracja IT.
Jak to monitorować
Trzy warstwy, równolegle.
Zgodność wersji. Skrypt porównuje php -v z poprawionymi wydaniami. Exit 1 = poniżej progu albo gałąź EOL. Nadaje się do crona i alertu.
curl -fsSL https://opselis.pl/scripts/php-cve-2026-check.sh -o php-cve-2026-check.sh
chmod +x php-cve-2026-check.sh
./php-cve-2026-check.sh
./php-cve-2026-check.sh --php /usr/bin/php8.3
./php-cve-2026-check.sh --jsonPrzykład cron (co godzinę, wpis do syslog przy failu):
0 * * * * /opt/scripts/php-cve-2026-check.sh || logger -t php-cve-check "PHP below fixed version on $(hostname)"Wazuh. Po patchu: agent na hoście sklepu, FIM na document root (nowe .php w mediach i cache), reguły na proces PHP/FPM odpalający shell, curl/wget albo reverse shell. SCA albo inventory pakietów pokazuje, czy php/php-fpm jest poniżej progu. Alert ma właściciela i próg.
OpenVAS. Po pojawieniu się CVE w feedzie skan originu i hosta z PHP flaguje niezałataną paczkę. To rytm tygodnia, nie zastępuje crona z php -v w dniu wydania.
WAF (np. Cloudflare) ogranicza znane wektory HTTP. Nie zastępuje aktualizacji PHP ani alertu z hosta.
W skrócie: CVE-2026-109618 i CVE-2026-109619 to krytyczne luki w interpreterze PHP, wydanie 21 października 2026 14:00 UTC. Spisz wersje, wgraj poprawione 8.2–8.5 jak tylko paczki będą dostępne. Gałęzie EOL migruj, nie czekaj na upstream.