Aktuální situace: PHP2Shell. Dvě kritické zranitelnosti PHP (CVSS 9.2) umožňují spustit škodlivý kód bez přihlášení. Záplaty od 21. 10. 2026.Co nyní udělat →

Server Plesk: kontrola verzí PHP a záplatování

Na serverech Plesk často běží současně několik verzí PHP. Takto zkontrolujete každý handler, nasadíte aktualizaci PHP a restartujete všechny workery.

Stav 4 min čteníServer a hosting

Stručně: Aktualizace PHP v Plesku je dokončena teprve tehdy, když je každá nainstalovaná verze PHP na opraveném stavu, všechny služby PHP-FPM byly restartovány a vy to dokážete doložit stavem balíčků a časem spuštění procesů. Samotné číslo verze zobrazené v panelu k tomu nestačí, protože backporty ho často nechávají beze změny.

O co jde u PHP2Shell na serverech Plesk

PHP2Shell označuje dvě kritické zranitelnosti v samotném PHP (CVE-2026-109618 a CVE-2026-109619, každá CVSS v4.0 9,2). Umožňují útočníkům spustit na serveru kód bez přihlášení. Postiženy jsou mimo jiné PHP-FPM a Apache s mod_php, tedy právě ty provozní režimy, které Plesk pro weby nastavuje.

Dne 21. 10. 2026 projekt PHP vydal opravené verze 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Pro PHP 8.1 a starší už oficiální aktualizace neexistují. Servery Plesk mají jednu zvláštnost: často na nich vedle sebe běží několik verzí PHP, částečně od samotného Plesku, částečně od operačního systému. Každá z nich vyžaduje vlastní kontrolu.

Důležité

Aktualizace v panelu nahradí soubory na disku. Dokud v paměti běží staré procesy PHP, zůstává zranitelnost otevřená. Bez restartu všech workerů není záplata účinná.

Aktualizace PHP v Plesku: nejdřív zjistit stav

Než cokoli aktualizujete, sestavte si seznam všech handlerů PHP a domén, které je používají. Jde to přes panel (Nástroje a nastavení, Nastavení PHP) nebo z příkazové řádky. Následující příkazy nic nemění, jen čtou.

# Všechny registrované handlery PHP s verzí a cestou
plesk bin php_handler --list

# Verze každé PHP nainstalované Pleskem (cesta jako příklad)
for p in /opt/plesk/php/*/bin/php; do echo "$p"; "$p" -v | head -1; done

U každého handleru si poznamenejte: verzi, provozní režim (FPM, FastCGI, modul Apache) a počet domén. Handler bez domény není důvodem k úlevě. Může být později přiřazen nebo běžet na testovacích subdoménách.

Kontrolovat stav balíčků, ne zobrazení

Plesk zobrazuje číslo verze, které PHP samo hlásí. Pokud Plesk nebo distribuce dodá opravu jako backport, může tam dál stát například 8.2.34, i když je oprava obsažena. A naopak může aktuálně vypadající číslo klamat, pokud balíček ještě nebyl aktualizován. Rozhodující jsou nainstalovaný stav balíčku a písemné potvrzení poskytovatele.

# Debian/Ubuntu (názvy balíčků jako příklad)
dpkg -l | grep -E 'plesk-php|php[0-9.]+-(fpm|cli)'

# AlmaLinux/Rocky/RHEL (názvy balíčků jako příklad)
rpm -qa | grep -E 'plesk-php|^php' | sort

Porovnejte verze balíčků s údaji v changelozích Plesku a s oznámeními vaší distribuce. Pokud tam není jednoznačně zdokumentováno, že CVE-2026-109618 a CVE-2026-109619 jsou opraveny, zeptejte se poskytovatele. Vzor najdete na stránce Zeptejte se hostingu na stav záplat.

Nasadit aktualizaci a restartovat všechny workery

Samotná aktualizace probíhá přes instalátor Plesku nebo správu balíčků systému. Poté následuje krok, který chybí nejčastěji: restart. Každá verze PHP má v Plesku vlastní službu FPM. Restartujte všechny, ne jen tu pro hlavní doménu.

# Vypsat všechny služby PHP-FPM (názvy služeb jako příklad)
systemctl list-units --type=service | grep -i 'php.*fpm'

# Restartovat po jednotlivých službách, např.:
systemctl restart plesk-php84-fpm

# Zkontrolovat čas spuštění běžících procesů PHP
ps -eo pid,lstart,cmd | grep -E 'php-fpm|php-cgi' | grep -v grep

Pokud doména běží na Apache s mod_php, restartujte Apache úplně. Pokud je čas spuštění procesu PHP před aktualizací, proces ještě nebyl obnoven. Více k tomuto kroku najdete na stránce Restart PHP-FPM a všech workerů.

Přechodná ochrana, dokud aktualizace chybí

Pokud pro některou verzi záplata zatím není k dispozici, doporučuje php.net přechodná opatření. Nejsou úplnou ochranou. V Plesku nastavujete hodnoty, které aplikace nesmějí přepsat, jako php_admin_value v dodatečných direktivách FPM domény nebo serverově v php.ini příslušné verze.

; Příklad dodatečných direktiv PHP-FPM v Plesku
php_admin_value[session.upload_progress.enabled] = 0
php_admin_value[post_max_size] = 8M
php_admin_value[upload_max_filesize] = 6M

Při nahrávání souborů je podle php.net určeno post_max_size = 32M a upload_max_filesize níže. Na PHP 8.5 přibývá fatal_error_backtraces=0. Omezení paměti pomocí memory_limit=-1 se smí nasadit jen společně s limitem na úrovni kontejneru nebo cgroup. Poté následuje opět restart všech workerů. Podrobnosti najdete na stránce Okamžitá opatření bez záplaty. BSI (německý Spolkový úřad pro informační bezpečnost) doporučuje webové servery dočasně odpojit od sítě, pokud aktualizace není okamžitě možná.

Po záplatě: zajistit logy a hledat stopy

Záplata uzavírá zranitelnost do budoucna. Neodstraní škodlivý software, který byl zavlečen dříve, a nedokládá, že se nic nestalo. Proto uchovejte logy webového serveru od 20. 10. 2026. Plesk je ukládá pro každou doménu do adresáře logs; v této situaci dobu uchovávání nekraťte.

Dávejte pozor na nové nebo změněné soubory PHP v adresářích pro nahrávání, neznámé plánované úlohy a nové administrátorské účty. Zveřejněné, potvrzené indikátory kompromitace (Indicators of Compromise) zatím neexistují; detekce spočívá na analýze chování. Pokud najdete cokoli nápadného, nepokračujte na vlastní pěst, ale nejdříve zajistěte stav systému.

Jak konkrétně pomáhá PHP SOS?

  • Zmapujeme všechny handlery PHP na vašem serveru Plesk, přiřadíme k nim domény a zkontrolujeme skutečný stav balíčků pro každou verzi.
  • V rámci naší služby záplatování PHP nasadíme aktualizace, restartujeme všechny služby a časy spuštění procesů zdokumentujeme jako doklad.
  • Kde záplata chybí, nastavíme přechodná opatření podle php.net serverově a tak, aby je nešlo přepsat.
  • Zajistíme logy a hledáme stopy kompromitace, při nálezu pomocí reakce na incidenty.
  • Poté server trvale zabezpečíme a odstraníme nepotřebné verze PHP.

Časté dotazy

Proč Plesk po aktualizaci stále zobrazuje PHP 8.2.34?

Distribuce a poskytovatelé někdy nasazují bezpečnostní opravy jako backport, aniž by změnili číslo verze. Rozhodující je pak stav balíčku a potvrzení poskytovatele. Samotné zobrazení neprokazuje ani záplatu, ani její absenci.

Stačí v panelu Plesk kliknout na Aktualizovat?

Aktualizace uloží nové soubory, ale běžící procesy PHP dál pracují se starým kódem v paměti. Nový stav je aktivní teprve po restartu všech služeb PHP-FPM a webového serveru. Poté zkontrolujte čas spuštění procesů.

Musím záplatovat i verze PHP, které žádná doména nepoužívá?

Ano, pokud zůstávají nainstalované. Nepoužívaný handler může být později omylem přiřazen nebo dosažitelný přes testovací prostředí. Verze, které nepotřebujete, je lepší odinstalovat úplně.

Pomůže proti PHP2Shell aktualizace WordPressu v Plesk Toolkitu?

Ne. PHP2Shell se týká samotného PHP, nikoli CMS. Aktualizace CMS je přesto užitečná, tuto zranitelnost ale neuzavře.

Zdroje

Okamžitý kontakt

Každá hodina se počítá. Napište nám hned.

Stručně popište systém, verzi PHP a pozorování. Ozveme se, vyjasníme situaci a budeme pracovat na dálku, dokud nebude incident uzavřen a zdokumentován.

Okamžitá pomoc