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 →

Jak správně ověřit verzi PHP a stav záplaty

Zobrazená verze PHP sama neřekne, zda je PHP2Shell uzavřeno. Rozhodují stav balíčku, backporty a to, zda skutečně běží nové procesy.

Stav 4 min čteníPHP2Shell

Stručně: Ke kontrole verze PHP nestačí php -v. Musíte vědět, kterou verzi PHP webový server skutečně používá, zda balíček obsahuje opravu, i jako backport se starým číslem, a zda byly po aktualizaci restartovány všechny procesy. PHP2Shell je opraveno v 8.5.12, 8.4.27, 8.3.36 a 8.2.35.

Proč samotné číslo verze nestačí

Pro PHP2Shell existuje jasný seznam opravených verzí. V praxi ale k chybnému odhadu vedou tři situace:

  • Více instalací: Příkazová řádka ukazuje PHP 8.3, web ale běží přes pool s PHP 8.1.
  • Backporty: Distribuce a poskytovatelé hostingu někdy nasazují opravy do stávajících balíčků. Plesk pak například dál zobrazuje 8.2.34, přestože je záplatováno.
  • Staré procesy: Nové soubory leží na disku, běžící workeři ale pocházejí ještě z doby před aktualizací.

Pro vedení firem a netechniky pomáhá jednoduché pravidlo: nezeptejte se jen „Jakou verzi PHP máme?“, ale „Je PHP2Shell uzavřeno na všech serverech a podle čeho to poznáme?“. Spolehlivá odpověď obsahuje tři doklady: verzi nebo backport, stav balíčku a čas restartu.

Technická kontrola má proto tři kroky: verze, stav balíčku, běžící procesy. Příkazy níže jsou čistě čtecí. Názvy balíčků a služeb se liší podle distribuce, zdroje PHP a hostingového rozhraní; příklady vycházejí z PHP 8.3.

Kontrola verze PHP na příkazové řádce

php -v                                  # verze příkazové řádky
ls /etc/php/ 2>/dev/null                # Debian/Ubuntu: nainstalované větve
php-fpm8.3 -v                           # verze binárky FPM (název se liší podle distribuce)
php -i | grep -E "^PHP Version|Server API|Loaded Configuration File"

U RHEL, AlmaLinux nebo Rocky se binárka FPM obvykle jmenuje php-fpm; u Software Collections nebo cizích zdrojů leží další verze ve vlastních cestách. Plesk a cPanel přinášejí vlastní instalace PHP, které existují vedle systémového PHP. Jak tam postupovat, popisujeme na stránkách Plesk a cPanel.

Kterou verzi PHP web používá ve webovém kontextu, nejspolehlivěji uvidíte v konfiguraci poolu nebo VirtualHostu nebo v hostingovém rozhraní. Ukáže to i stránka phpinfo; zřizujte ji jen krátce, s ochranou přístupu a náhodným názvem a ihned ji poté smažte.

U sdíleného hostingu většinou nemáte přístup k příkazové řádce. Hostingové rozhraní pak ukazuje nastavenou verzi PHP pro každý web. Zda byl backport nasazen a restartován, tam ale zřídka stojí. Zde je spolehlivou cestou písemné potvrzení poskytovatele hostingu.

Kontrola stavu balíčku a backportů

Stav balíčku ukazuje, co vaše distribuce skutečně dodala:

# Debian/Ubuntu
apt policy php8.3-fpm
apt changelog php8.3-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619"

# RHEL, AlmaLinux, Rocky, Fedora
dnf info php-fpm
rpm -q --changelog php-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619"

Pokud je v changelogu uvedeno některé z čísel CVE, je backport v nainstalovaném balíčku obsažen. Pokud záznam chybí, není to ještě důkaz zranitelnosti: někteří správci balíčků formulují changelogy jinak. Pak porovnejte verzi balíčku s bezpečnostními oznámeními své distribuce nebo se zeptejte poskytovatele. Vzor pro takový dotaz najdete na stránce Jak se zeptat poskytovatele hostingu na stav záplat.

Důležité: zkontrolujte každý nainstalovaný balíček PHP, ne jen první. Na serverech s více větvemi je často jedna záplatovaná a jiná ne.

Běží nová verze skutečně?

Aktualizace je účinná až po restartu všech procesů PHP. Porovnejte dobu spuštění běžících procesů s časem aktualizace:

ps -o pid,lstart,cmd -C php-fpm8.3      # čas spuštění procesů FPM
systemctl status php8.3-fpm             # od kdy služba běží
needrestart -r l                        # Debian/Ubuntu, pokud je nainstalován: zobrazí zastaralé procesy

Pokud je doba spuštění před aktualizací, běží ještě staré procesy. U Apache s mod_php platí totéž pro procesy Apache. Jak čistě restartovat, popisuje stránka Restart PHP-FPM a všech workerů.

Tip

Výsledek si poznamenejte písemně: server, verze PHP, verze balíčku, CVE v changelogu ano či ne, čas restartu. Tuto poznámku budete potřebovat pro vedení, pojišťovnu a pozdější kontrolu stop.

Zařazení výsledku

Nález Hodnocení
Oficiální verze 8.5.12, 8.4.27, 8.3.36 nebo 8.2.35, procesy restartovány PHP2Shell uzavřeno
Starší číslo, čísla CVE v changelogu balíčku, procesy restartovány Backport nasazen, uzavřeno
Starší číslo, žádný záznam v changelogu, žádné potvrzení nejasné, ujasnit u poskytovatele
PHP 8.1 nebo starší bez potvrzeného backportu otevřeno, nutná přechodná opatření a migrace
Procesy starší než aktualizace chybí restart, zranitelnost je stále aktivní

Pokud zůstane server ve stavu „nejasné“, zacházejte s ním jako s otevřeným: nastavte přechodná opatření a sledujte ujasnění, dokud nebude k dispozici doklad. Úplný přehled verzí najdete na stránce Které verze PHP jsou postižené?.

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

Prostřednictvím služby záplatování PHP přebíráme kontrolu a doklad:

  • Najít všechny instalace, i druhé verze z hostingových panelů, Software Collections nebo kontejnerů.
  • Vyhodnotit stav balíčku: oficiální vydání, backport nebo otevřeno, s dokladem z changelogu nebo od poskytovatele.
  • Zkontrolovat restart, dokud neběží žádný proces se starým kódem.
  • Vytvořit protokol kontroly, který můžete použít interně i vůči třetím stranám.

Časté dotazy

Proč php -v ukazuje jinou verzi než můj web?

Na mnoha serverech je nainstalováno více verzí PHP. Příkazová řádka používá jednu z nich, webový server nebo pool FPM jinou. Zkontrolujte proto verzi, která skutečně běží ve webovém kontextu, například přes binárku FPM nebo hostingové rozhraní.

Jak poznám backport?

U balíčků distribucí je oprava často uvedena v changelogu balíčku, zpravidla s číslem CVE. V Debianu a Ubuntu pomůže apt changelog, v systémech typu RHEL rpm -q --changelog. Pokud záznam chybí, ujasněte stav u poskytovatele.

Mohu verzi PHP zkontrolovat v zákaznickém menu hostingu?

Ano, většina rozhraní zobrazuje nastavenou verzi pro každý web. Zda byl backport nasazen a restartován, tam většinou neuvidíte. K tomu je spolehlivou cestou písemné potvrzení poskytovatele hostingu.

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