PHP opravuje dvě kritické zranitelnosti umožňující vzdálené spuštění kódu
Vývojáři PHP ve středu 21. října vydali čtyři bezpečnostní verze: PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Opravují dvě zranitelnosti (CVE-2026-109618 a CVE-2026-109619), které mohou útočníkovi bez přihlášení umožnit vzdálené spuštění kódu (RCE). Obě mají podle předchozího oznámení hodnocení CVSS v4.0 9,2.
Ohrožené jsou všechny instalace PHP obsluhující webové požadavky, tedy PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP i LiteSpeed. Nejvyšší riziko projekt vidí u mod_php, kde má předvedený exploit, při kterém útok proběhne dřív, než se spustí kód aplikace.
Zranitelnosti:
- CVE-2026-109618, RCE přes poškození paměti při OOM: zpracování nedostatku paměti může přerušit PHP ve chvíli, kdy jsou interní data požadavku jen částečně inicializovaná. Úklid po požadavku s nimi pak může zacházet jako s platnými.
- CVE-2026-109619, RCE přes zastaralý globální stav: interní stav patřící požadavku může přežít uvolnění paměti, na kterou ukazuje. Další požadavek obsluhovaný stejným workerem jej pak může použít dřív, než ho běžná inicializace vynuluje.
Jak aktualizovat:
- Přejděte na jednu z fixních verzí (zdrojové kódy i Windows binárky jsou na php.net/downloads).
- U linuxových distribucí a LTS dodavatelů dostali záplaty předem, hledejte aktualizované balíčky.
- PHP 8.1 a starší projekt už neudržuje. Pomoci mohou LTS dodavatelé s backporty, nebo upgrade na podporovanou verzi. Bezpečnostní tým kvůli závažnosti připravil minimální zdrojové backporty pro PHP 7.4, 8.0 a 8.1 pro ty, kdo PHP sestavují sami nebo nemají LTS dodavatele.
- Projekt vyzývá uživatele neoficiálního repozitáře rpms.remirepo.net, aby přešli na balíčky distribuce nebo sestavili PHP ze zdroje. Repozitář podle něj ten den aktualizace mít nebude.
Pokud aktualizovat nelze hned, PHP uvádí opatření, která snižují expozici, ale instalaci nezabezpečí. Patří mezi ně nastavit memory_limit=-1 tak, aby ho aplikace nemohly přepsat, snížit post_max_size (8 MB bez uploadů, 32 MB s nimi), vypnout session.upload_progress.enabled a na PHP 8.5 nastavit fatal_error_backtraces=0. Kompletní seznam a technické detaily jsou v samotném oznámení a v advisories na GitHubu.
PHP 8.2 navíc končí podporu 31. prosince 2026, po tomto datu už nedostane žádné bezpečnostní opravy.
Odkazy: https://www.php.net/archive/2026.php#2026-10-21-5 (bezpečnostní oznámení), https://www.php.net/downloads.php (stažení)