Datahorses

PHP2Shell: ktoré verzie PHP sú opravené a ako zistiť tú vašu

Autor: · · 4 min čítania

V októbri 2026 projekt PHP opravil 2 kritické zraniteľnosti, ktoré môžu útočníkovi umožniť spustiť kód na serveri bez prihlásenia. CISA ich označuje ako „php2shell“. Evidujú sa pod označením CVE-2026-109618 a CVE-2026-109619 a obe majú hodnotenie 9,2 podľa CVSS v4.0. Ak niektorá časť online služieb vašej firmy beží na PHP, postup je jednoduchý: uistite sa, že beží na PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 alebo novšom, prípadne na balíku od dodávateľa, ktorý opravu obsahuje.

Tento článok vysvetľuje, čo bolo opravené, ktoré verzie opravu obsahujú, ako zistiť, akú verziu hlási váš server, a na čo sa opýtať tých, ktorí spravujú váš hosting. Môžete si tiež za pár sekúnd overiť, akú verziu PHP hlási váš web.

Čo je PHP2Shell

Bezpečnostné upozornenie PHP z 21. októbra 2026 opisuje 2 chyby v tom, ako PHP narába s internými údajmi požiadavky:

  • CVE-2026-109618, poškodenie pamäte pri jej nedostatku. Keď PHP minie dostupnú pamäť, môže byť prerušené vo chvíli, keď sú interné údaje požiadavky inicializované len čiastočne, a následné upratovanie potom môže neplatné údaje považovať za platné.
  • CVE-2026-109619, zastaraný stav požiadavky. Interný stav patriaci jednej požiadavke môže pretrvať aj po uvoľnení jej pamäte a neskoršia požiadavka spracovaná tým istým procesom ho môže použiť.

Obe môžu umožniť vzdialené spustenie kódu bez overenia. Podľa upozornenia je zraniteľná každá inštalácia PHP, ktorá obsluhuje webové požiadavky, vrátane PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP a LiteSpeed. Tím PHP považuje za najrizikovejší mod_php, pretože požiadavka môže útok spustiť ešte predtým, ako sa vykoná akýkoľvek kód aplikácie. To zároveň znamená, že aplikácia nad ním (WordPress, e-shop, vlastný portál) vás sama osebe neochráni. Opraviť treba samotné PHP.

Opravené verzie a časová os

PHP 8.1 a staršie už od projektu PHP aktualizácie nedostávajú (pozri podporované verzie). Upozornenie uvádza, že niektoré linuxové distribúcie a dodávatelia dlhodobej podpory opravy spätne prenášajú a že bezpečnostný tím PHP zverejnil minimálne záplaty zdrojového kódu pre 7.4, 8.0 a 8.1 pre tých, ktorí si PHP kompilujú sami. Ak vaša služba beží na niektorej z týchto vetiev, opýtajte sa dodávateľa, či obsahuje opravu, a naplánujte prechod na podporovanú vetvu.

Ako zistiť, akú verziu PHP používate

Jednoznačnú odpoveď dá samotný server, nie pohľad zvonku:

  • Opýtajte sa toho, kto službu prevádzkuje (poskytovateľa hostingu, agentúry alebo IT oddelenia), na presnú verziu PHP a či obsahuje opravy z 21. októbra.
  • Ak máte prístup do príkazového riadku, spustite php -v. Webový server môže používať iný binárny súbor PHP než príkazový riadok, preto skontrolujte verziu aj v paneli hostingu alebo v poole PHP-FPM.
  • Balíky od dodávateľa ukáže správca balíkov: na Debiane a Ubuntu dpkg -l | grep php, na RHEL a podobných systémoch rpm -qa | grep php. Porovnajte verziu balíka s bezpečnostným oznámením dodávateľa, pretože dodávatelia často ponechajú pôvodné číslo verzie a opravu len doplnia.

Zvonku niektoré servery prezrádzajú svoju verziu v hlavičkách HTTP odpovede:

X-Powered-By: PHP/8.3.12
Server: Apache/2.4.62 (Debian)

Vlastné hlavičky si zobrazíte príkazom curl -sI https://www.example.com/. Naša kontrola PHP2Shell číta tie isté 2 hlavičky, X-Powered-By a Server, a porovná číslo s opravenými verziami.

Čo hlavička prezradí a čo nie

Pri čítaní hlavičky buďte opatrní v oboch smeroch:

  • Staré číslo nedokazuje, že server je zraniteľný. Mnohí poskytovatelia hostingu nasadia opravu na úrovni systému a pôvodné označenie verzie ponechajú.
  • Aktuálne číslo je dobré znamenie, nie dôkaz. Hlavičku možno zmeniť alebo ju môže nastaviť proxy pred serverom.
  • Bez čísla nemáte žiadnu informáciu. Väčšina serverov verziu PHP vôbec neposiela. Keď sme 31. októbra 2026 merali 8 221 domén slovenských firiem, z 8 171, ktoré odpovedali, uviedlo verziu PHP v hlavičkách len 332 (4,1 %). Pri ostatných hlavička nehovorí nič ani jedným smerom a otázka patrí tomu, kto službu prevádzkuje.

Čo robiť teraz

  1. Aktualizujte PHP na 8.2.35, 8.3.36, 8.4.27, 8.5.12 alebo novšie, prípadne nainštalujte opravený balík od dodávateľa. Reštartujte PHP-FPM alebo webový server, aby naozaj bežala nová verzia.
  2. Opýtajte sa poskytovateľa hostingu písomne, na akej verzii PHP beží vaša služba a či obsahuje opravy CVE-2026-109618 a CVE-2026-109619. To isté sa opýtajte aj na testovacie servery a staršie projekty; pozri zabudnuté staging a testovacie servery.
  3. Naplánujte odchod z PHP 8.1 a starších, ak spätne prenesená oprava nie je k dispozícii.
  4. Prestaňte verziu prezrádzať. Nastavte expose_php = Off v php.ini, čím odstránite X-Powered-By, a obmedzte hlavičku Server (ServerTokens Prod pre Apache, server_tokens off pre nginx). Samo osebe to nič neopraví, no prestanete tým ponúkať podrobnosti automatizovaným skenerom. Viac v článku Bezpečnostné hlavičky HTTP, ktoré by mal posielať každý firemný web.

Ak nemôžete aktualizovať hneď, upozornenie uvádza dočasné opatrenia, ktoré obmedzia konkrétne spôsoby útoku, a zároveň jasne hovorí, že úplným riešením je len aktualizácia.

Ako pomáha Datahorses

Vašu firmu strážime zvonku každý deň, tak ako by ju videl útočník, a prístup do vašich systémov nepotrebujeme. Keď server začne prezrádzať zastaranú verziu softvéru, dostanete zistenie s presným postupom pre toho, kto server spravuje. Pozrite sa, čo strážime, alebo si vyžiadajte ponuku.

Ďalšie články

Všetky články