Stručne: Kto ešte prevádzkuje PHP 8.1 alebo staršie, nedostáva od projektu PHP už žiadne oficiálne bezpečnostné aktualizácie, ani pre PHP2Shell. Upgrade z PHP 8.1 na podporovanú verziu preto nie je voliteľná vec, ale skutočné riešenie. Preveríme vaše aplikácie, otestujeme na kópii, zmigrujeme riadene a čas do dokončenia zabezpečíme.
Prečo je PHP 8.1 a staršie teraz akútnym rizikom
Zraniteľnosti PHP2Shell CVE-2026-109618 a CVE-2026-109619 umožňujú spúšťanie kódu bez prihlásenia. Sú opravené v PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Pre PHP 8.1 a staršie už neexistujú oficiálne aktualizácie, iba minimálne backporty zdrojového kódu pre 7.4, 8.0 a 8.1. Podľa odbornej tlače sú dotknuté prakticky všetky verzie až po PHP 5.4.
Niektoré distribúcie a poskytovatelia hostingu nasadzujú vlastné backporty. Či k nim patrí váš systém, musí poskytovateľ potvrdiť pre váš konkrétny stav balíkov. Bez tohto potvrdenia by ste mali vychádzať z toho, že server je otvorený. Čo to znamená v jednotlivostiach, popisuje stránka PHP 8.1 a staršie: čo teraz platí.
Upgrade PHP 8.1: ktorá cieľová verzia?
Cieľom by mala byť verzia, ktorú projekt PHP ešte podporuje a ktorú vaša aplikácia podporuje. Aktuálny stav podpory zverejňuje php.net na stránke podporovaných verzií. PHP 8.2 končí 31. 12. 2026; prechod na 8.2 by bol teda iba medzikrokom s čoskoro nasledujúcim ďalším projektom.
Ktorú verziu PHP podporuje vaše CMS alebo obchodný systém, preveríme podľa systémových požiadaviek výrobcu, napríklad na wordpress.org, shopware.com alebo typo3.org, a nie z pamäte. Často sa musí najprv aktualizovať samotné CMS. Staré obchody sú typickým prípadom, pozri Shopware 5: staré obchody na starej verzii PHP.
Ako konkrétne pomáha PHP SOS?
- Inventúra a zabezpečenie: Zaznamenáme všetky aplikácie, ich verziu PHP, stav CMS, rozšírenia a vlastný kód. Súbežne nastavíme prechodné opatrenia podľa php.net, aby riziko do migrácie kleslo; podrobnosti na stránke WAF a virtuálne záplatovanie.
- Preveriť kompatibilitu: Porovnáme systémové požiadavky výrobcov, skontrolujeme závislosti pomocou Composeru a v zákazníckom kóde hľadáme zastarané funkcie. Ako to vyzerá pri závislostiach, popisuje stránka Kontrola závislostí Composeru na zraniteľnosti.
- Test na kópii: Aplikácia najprv beží v testovacom prostredí s novou verziou PHP. Chyby tam odstránime alebo ich zdokumentujeme pre vašu agentúru.
- Prechod s cestou späť: Živý prechod prebehne v dohodnutom servisnom okne s aktuálnou zálohou a stanovenou cestou späť.
- Následná kontrola: Po prechode skontrolujeme chybové protokoly a kľúčové funkcie a starú verziu PHP odstránime, ak ju už nepotrebujeme.
Neškodný pohľad na to, ktoré weby používajú ktorú verziu PHP, je na mnohých systémoch možný cez bežiace pooly FPM:
# zobraziť bežiace master procesy a pooly PHP-FPM
ps -eo pid,cmd | grep -E "php-fpm: (master|pool)" | grep -v grep
# nainštalované verzie PHP (Debian/Ubuntu)
ls /etc/php/
Upgrade na novú verziu PHP neodstráni škodlivý softvér, ktorý bol zavlečený predtým. Ak bol server od 17. 10. 2026 nechránene pripojený do siete, patrí k tomu aj kontrola stôp.
Typické úskalia pri upgrade
Väčšina problémov pri zmene verzie PHP je predvídateľná, ak viete, kde hľadať:
- Zastarané rozšírenia: Doplnky alebo moduly, ktoré sa už nespravujú, na novších verziách PHP často nebežia. Potrebujú náhradu alebo úpravu.
- Vlastný kód: Funkcie, ktoré PHP medzitým označilo za zastarané alebo odstránilo, vedú k varovaniam alebo zlyhaniam. Prísnejšie kontroly typov odhalia staré programátorské chyby.
- Závislosti: Knižnice zahrnuté cez Composer samy vyžadujú nové verzie a vyvolávajú ďalšie zmeny.
- Rozšírenia PHP na serveri: Nie každé rozšírenie, ktoré bolo nainštalované pod starou verziou, je pre novú automaticky k dispozícii.
- Cronjoby a príkazový riadok: Web už beží na novej verzii, plánované úlohy však ešte volajú starú verziu PHP.
Kto tieto body preverí vopred, skráti prechod a vyhne sa prekvapeniam v živej prevádzke.
Čo dostanete a čo potrebujeme
Dostanete prehľad všetkých aplikácií s východiskovou a cieľovou verziou, plán migrácie s poradím a rizikami, protokol o testoch, dokumentáciu prechodu a zoznam bodov, ktoré ešte musí vybaviť vaša agentúra alebo vývojár.
Od vás potrebujeme:
- prístup na server alebo do panelu a prístup do backendov CMS
- prístup k zdrojovému kódu a repozitáru pri vlastných vývojoch
- kontakt na agentúru alebo vývojára, ktorí aplikáciu poznajú
- testovacie prostredie alebo súhlas, aby sa vytvorilo
- servisné okná a kontaktnú osobu na prevzatie
Čo nesľubujeme
Nesľubujeme, že každá stará aplikácia pobeží bez zmien na novej verzii PHP. Pri systémoch bez ďalšieho vývoja môže byť potrebná väčšia prestavba alebo zmena systému; povieme to otvorene, hneď ako sa to ukáže. Vyhlásenia o kompatibilite opierame o údaje výrobcov. A prechodné opatrenia nie sú náhradou migrácie, iba premosťujú čas. Dlhodobé riziká zastaraných verzií popisuje stránka PHP End-of-Life: riziká zastaraných verzií.
Časté otázky
Týka sa PHP2Shell aj PHP 8.1?
Podľa odbornej tlače sú dotknuté prakticky všetky verzie až po PHP 5.4. Pre PHP 8.1 a staršie už projekt PHP nevydáva oficiálne aktualizácie, iba minimálne backporty zdrojového kódu pre 7.4, 8.0 a 8.1. Niektoré distribúcie nasadzujú vlastné backporty, čo musí potvrdiť príslušný poskytovateľ.
Na ktorú verziu PHP by som mal prejsť?
Na verziu, ktorú projekt PHP ešte aktívne podporuje a ktorú vaša aplikácia podľa systémových požiadaviek výrobcu podporuje. PHP 8.2 dosiahne koniec podpory 31. 12. 2026 a ako cieľ je preto zmysluplné len podmienečne.
Nemôžem jednoducho prepnúť verziu PHP v hostingovom paneli?
Technicky to často ide jedným kliknutím. Či aplikácia potom ešte beží, závisí od verzie CMS, rozšírení a vlastného kódu. Bez testu riskujete výpadky alebo chybné funkcie, napríklad v pokladni obchodu.
Čo ak moje CMS novú verziu PHP nepodporuje?
Potom sa musí najprv aktualizovať CMS, za určitých okolností na novú hlavnú verziu. Pri systémoch bez ďalšieho vývoja môže byť potrebná zmena systému. Dovtedy server zabezpečíme prechodnými opatreniami.