Aktuálna situácia: PHP2Shell. Dve kritické zraniteľnosti PHP (CVSS 9.2) umožňujú spustenie škodlivého kódu bez prihlásenia. Záplaty od 21. 10. 2026.Čo treba urobiť teraz →

Správne overenie verzie a stavu záplat PHP

Zobrazená verzia PHP sama nehovorí, či je PHP2Shell uzavreté. Rozhodujú stav balíka, backporty a to, či naozaj bežia nové procesy.

Stav 4 min čítaniaPHP2Shell

Stručne: Na overenie verzie PHP nestačí php -v. Musíte vedieť, ktorú verziu PHP webový server naozaj používa, či balík obsahuje opravu, aj ako backport so starým číslom, a či sa po aktualizácii reštartovali všetky procesy. PHP2Shell je opravené v 8.5.12, 8.4.27, 8.3.36 a 8.2.35.

Prečo samotné číslo verzie nestačí

Pre PHP2Shell existuje jasný zoznam opravených verzií. V praxi však k chybným odhadom vedú tri situácie:

  • Viac inštalácií: Príkazový riadok ukazuje PHP 8.3, web však beží cez pool s PHP 8.1.
  • Backporty: Distribúcie a poskytovatelia hostingu nasadzujú opravy čiastočne do existujúcich balíkov. Plesk potom napríklad naďalej zobrazuje 8.2.34, hoci je záplatované.
  • Staré procesy: Nové súbory ležia na disku, bežiaci workeri však pochádzajú ešte spred toho.

Pre vedenie a netechnikov pomáha jednoduché pravidlo: nepýtajte sa iba „Akú verziu PHP máme?“, ale „Je PHP2Shell uzavreté na všetkých serveroch a podľa čoho to vidíme?“. Spoľahlivá odpoveď obsahuje tri doklady: verziu alebo backport, stav balíka a čas reštartu.

Technická kontrola má preto tri kroky: verzia, stav balíka, bežiace procesy. Nižšie uvedené príkazy sú čisto čítacie. Názvy balíkov a služieb sa líšia podľa distribúcie, zdroja PHP a hostingového rozhrania; príklady vychádzajú z PHP 8.3.

Overenie verzie PHP na príkazovom riadku

php -v                                  # verzia príkazového riadku
ls /etc/php/ 2>/dev/null                # Debian/Ubuntu: nainštalované vetvy
php-fpm8.3 -v                           # verzia binárky FPM (názov podľa distribúcie)
php -i | grep -E "^PHP Version|Server API|Loaded Configuration File"

Pod RHEL, AlmaLinux alebo Rocky sa binárka FPM zvyčajne volá php-fpm; pri Software Collections alebo cudzích zdrojoch ležia ďalšie verzie vo vlastných cestách. Plesk a cPanel prinášajú vlastné inštalácie PHP, ktoré existujú popri systémovom PHP. Ako tam postupovať, popisujeme na stránkach o Plesk a cPanel.

Ktorú verziu PHP web vo webovom kontexte používa, vidíte najspoľahlivejšie v konfigurácii poolu alebo VirtualHost, alebo v hostingovom rozhraní. Zobrazí to aj stránka phpinfo; zriaďte ju iba krátko, s ochranou prístupu a náhodným názvom, a hneď potom ju zmažte.

Pri zdieľanom hostingu zvyčajne nemáte prístup na príkazový riadok. Vtedy hostingové rozhranie zobrazuje nastavenú verziu PHP pre každý web. Či bol nasadený backport a vykonaný reštart, tam však len zriedka uvidíte. Spoľahlivou cestou je tu písomné potvrdenie poskytovateľa hostingu.

Kontrola stavu balíka a backportov

Stav balíka ukazuje, čo vaša distribúcia skutočne 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"

Ak je v changelogu niektoré z čísel CVE, backport je v nainštalovanom balíku obsiahnutý. Ak záznam chýba, nie je to ešte dôkaz zraniteľnosti: niektorí správcovia balíkov formulujú changelogy inak. Potom porovnajte verziu balíka s bezpečnostnými hláseniami vašej distribúcie alebo sa opýtajte poskytovateľa. Vzor pre tento dopyt nájdete na stránke Ako sa opýtať poskytovateľa hostingu na stav záplat.

Dôležité: skontrolujte každý nainštalovaný balík PHP, nielen prvý. Na serveroch s viacerými vetvami je často jedna záplatovaná a iná nie.

Beží nová verzia aj naozaj?

Aktualizácia je účinná až vtedy, keď sa reštartovali všetky procesy PHP. Porovnajte čas spustenia bežiacich procesov s časom aktualizácie:

ps -o pid,lstart,cmd -C php-fpm8.3      # čas spustenia procesov FPM
systemctl status php8.3-fpm             # odkedy služba beží
needrestart -r l                        # Debian/Ubuntu, ak je nainštalovaný: zobrazí zastarané procesy

Ak je čas spustenia pred aktualizáciou, ešte bežia staré procesy. Pri Apache s mod_php platí to isté pre procesy Apache. Ako čisto reštartovať, popisuje stránka Reštart PHP-FPM a všetkých workerov.

Tip

Výsledok si zaznamenajte písomne: server, verzia PHP, verzia balíka, CVE v changelogu áno alebo nie, čas reštartu. Túto poznámku potrebujete pre vedenie, poisťovateľa a neskoršiu kontrolu stôp.

Zaradenie výsledku

Zistenie Hodnotenie
Oficiálna verzia 8.5.12, 8.4.27, 8.3.36 alebo 8.2.35, procesy reštartované PHP2Shell uzavreté
Staršie číslo, čísla CVE v changelogu balíka, procesy reštartované backport nasadený, uzavreté
Staršie číslo, žiadny záznam v changelogu, žiadne potvrdenie nejasné, vyjasniť u poskytovateľa
PHP 8.1 alebo staršie bez potvrdeného backportu otvorené, potrebné prechodné opatrenia a migrácia
Procesy staršie než aktualizácia chýba reštart, zraniteľnosť je stále aktívna

Ak server zostane v stave „nejasné“, zaobchádzajte s ním ako s otvoreným: nastavte prechodné opatrenia a sledujte objasnenie, kým nie je k dispozícii doklad. Úplný prehľad verzií nájdete na stránke Ktoré verzie PHP sú dotknuté?.

Ako konkrétne pomáha PHP SOS?

Cez službu záplatovania PHP preberáme kontrolu a doklad:

  • Nájsť všetky inštalácie, aj druhé verzie z hostingových panelov, Software Collections alebo kontajnerov.
  • Posúdiť stav balíka: oficiálne vydanie, backport alebo otvorené, s dokladom z changelogu alebo od poskytovateľa.
  • Skontrolovať reštart, kým nebeží už žiadny proces so starým kódom.
  • Vyhotoviť kontrolný protokol, ktorý môžete použiť interne aj voči tretím stranám.

Časté otázky

Prečo php -v zobrazuje inú verziu než môj web?

Na mnohých serveroch je nainštalovaných viac verzií PHP. Príkazový riadok používa jednu z nich, webový server alebo pool FPM inú. Preto skontrolujte verziu, ktorá naozaj beží vo webovom kontexte, napríklad cez binárku FPM alebo hostingové rozhranie.

Ako rozpoznám backport?

Pri distribučných balíkoch je oprava často uvedená v changelogu balíka, často s číslom CVE. Pod Debianom a Ubuntu pomôže apt changelog, pod systémami typu RHEL rpm -q --changelog. Ak záznam chýba, vyjasnite stav u poskytovateľa.

Môžem verziu PHP skontrolovať v zákazníckom menu hostingu?

Áno, väčšina rozhraní zobrazuje nastavenú verziu pre každý web. Či bol nasadený backport a vykonaný reštart, tam zvyčajne neuvidíte. Spoľahlivou cestou je písomné potvrdenie od poskytovateľa hostingu.

Zdroje

Okamžitý kontakt

Každá hodina sa počíta. Napíšte nám hneď.

Stručne opíšte systém, verziu PHP a svoje pozorovanie. Ozveme sa, vyjasníme situáciu a budeme pracovať na diaľku, kým nebude incident uzavretý a zdokumentovaný.

Okamžitá pomoc