ZerumOne
ProjektyO násKlientiBlog
Späť na blog
IT bezpečnosť a infraštruktúra

PHP2Shell: Kritické zraniteľnosti PHP a ako ochrániť svoj web

PHP2Shell je označenie dvojice kritických bezpečnostných zraniteľností v samotnom PHP. Boli zverejnené v októbri 2026 a útočníkovi bez potreby prihlásenia môžu umožniť vzdialené spustenie kódu na zraniteľnom webovom serveri. V praxi to znamená, že útočník môže za určitých okolností napadnúť server bez toho, aby sa najskôr prihlásil do webovej stránky.

Zraniteľnosti sú evidované pod označeniami CVE-2026-109618 a CVE-2026-109619. Obe dosahujú hodnotenie CVSS v4.0 9,2 z 10, teda kritickú závažnosť. Tím PHP už vydal opravené verzie a aktualizácia by mala byť pre správcov serverov prioritnou bezpečnostnou úlohou.

Táto hrozba sa netýka iba programátorov, ktorí píšu PHP kód. PHP využíva veľké množstvo webových stránok a podnikových aplikácií. Web môže byť zraniteľný aj vtedy, keď jeho majiteľ nikdy priamo neupravoval žiadny PHP súbor.

Čo je PHP?

PHP (PHP: Hypertext Preprocessor) je open-source skriptovací jazyk, ktorý sa vo veľkej miere používa na vývoj webových aplikácií na strane servera. Na rozdiel od JavaScriptu, ktorý sa bežne vykonáva v prehliadači návštevníka, PHP spravidla beží na webovom serveri. Spracúva požiadavky, komunikuje s databázami a ďalšími službami, vykonáva aplikačnú logiku a vytvára HTML alebo inú odpoveď, ktorú následne dostane návštevník webovej stránky.

PHP využíva široké spektrum webových stránok a platforiem, napríklad:

  • WordPress, jeden z najpoužívanejších redakčných systémov, na ktorom fungujú blogy, firemné weby aj internetové obchody.
  • Drupal, redakčný systém a aplikačná platforma využívaná pri komplexných webových riešeniach.
  • Joomla, ďalší známy redakčný systém.
  • MediaWiki, softvér, na ktorom funguje Wikipédia.
  • Vlastné PHP aplikácie, napríklad rezervačné systémy, zákaznícke portály, e-commerce riešenia, API a interné podnikové aplikácie.

PHP sa bežne prevádzkuje v spojení s webovými servermi a aplikačnými rozhraniami, ako sú Apache s mod_php, PHP-FPM, php-cgi, FrankenPHP alebo LiteSpeed. Práve to je dôležité: PHP2Shell zasahuje samotné PHP, nie iba konkrétny web alebo doplnok.

Čo je PHP2Shell?

PHP2Shell označuje dve súvisiace bezpečnostné zraniteľnosti v jadre PHP. Súvisia s nesprávnym spracovaním pamäte pri určitých chybových stavoch a pri spracovaní požiadaviek.

Na všeobecnej úrovni ide o tieto problémy:

  • CVE-2026-109618, spracovanie nedostatku pamäte (Out-of-Memory, OOM): za určitých okolností môže PHP po chybe spôsobenej nedostatkom pamäte ponechať interné údaje požiadavky v neplatnom alebo neúplne inicializovanom stave. Následné čistiace operácie môžu s týmito údajmi nesprávne pracovať.
  • CVE-2026-109619, zastaraný globálny stav (stale global state): v určitých situáciách môže interný stav PHP naďalej odkazovať na pamäť patriacu požiadavke aj po jej uvoľnení. Následná požiadavka môže s takýmto neplatným odkazom pracovať.

Ide o chyby na nízkej úrovni v samotnom PHP engine. Špeciálne vytvorená požiadavka môže vyvolať zraniteľný spôsob spracovania. V závislosti od konkrétneho nasadenia a spôsobu zneužitia môže dôjsť k vzdialenému spusteniu kódu (Remote Code Execution, RCE) alebo k úniku citlivých údajov z pamäte PHP procesu.

Pri demonštrovaných útokoch nebolo potrebné, aby sa útočník prihlásil do napadnutej webovej aplikácie. Tím PHP označil nasadenia Apache mod_php za obzvlášť rizikové, pretože demonštrovaný útok môže byť spustený ešte pred vykonaním aplikačného kódu. Zraniteľnosť sa však týka aj ďalších spôsobov prevádzky PHP, ktoré spracúvajú webové požiadavky.

Na prijatie potrebných bezpečnostných opatrení nie je nutné poznať interné detaily správy pamäte. Podstatné je identifikovať všetky PHP runtime prostredia, ktoré spracúvajú požiadavky, a aktualizovať ich na opravenú verziu.

Čo sa môže stať pri napadnutí servera?

Úspešné zneužitie zraniteľnosti môže mať vážne následky. V závislosti od oprávnení PHP procesu a konfigurácie servera môže útočník:

  1. Spúšťať príkazy na serveri. Kód môže byť vykonaný s oprávneniami PHP procesu alebo používateľa webového servera.
  2. Získať prístup k aplikačným údajom. Môže ísť o zákaznícke záznamy, nahrané súbory, konfiguračné súbory a ďalšie informácie dostupné napadnutému procesu.
  3. Odcudziť prihlasovacie údaje a tajné kľúče. Pamäť PHP procesu môže obsahovať heslá do databáz, API tokeny, údaje súvisiace so session, certifikáty alebo iné citlivé informácie.
  4. Upraviť obsah webovej stránky. Útočník môže zmeniť vzhľad stránky, vložiť škodlivý obsah, vytvoriť neoprávnené účty alebo nasadiť škodlivý kód.
  5. Využiť server na ďalšie útoky. Napadnutý server môže slúžiť ako východiskový bod na útoky proti prepojeným systémom a službám, podľa dostupných sieťových oprávnení.
  6. Narušiť dostupnosť služieb. Zneužitie zraniteľnosti alebo pokusy oň môžu spôsobiť pády PHP procesov, chybové odpovede alebo výpadky služieb.

Ide o možné následky, nie o tvrdenie, že každá zraniteľná webová stránka už bola napadnutá. Skutočný dosah závisí od konkrétneho prostredia, oprávnení, dostupných služieb a úspešnosti útoku.

Ktoré verzie PHP sú zraniteľné?

Projekt PHP zverejnil bezpečnostné aktualizácie 21. októbra 2026. Pre podporované vetvy uvedené v bezpečnostnom upozornení sú prvými opravenými verziami:

Vetva PHPPrvá opravená verzia
PHP 8.58.5.12
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35

Verzie staršie ako príslušná opravená verzia sú zraniteľné. PHP 8.1 a staršie vetvy sú po skončení podpory alebo mimo aktuálnych podporovaných vetiev. Niektorí dodávatelia operačných systémov alebo komerčných distribúcií môžu poskytovať bezpečnostné opravy spätne aj pre staršie verzie. V takom prípade je potrebné overiť konkrétny stav balíka priamo u dodávateľa. Ak bezpečnostná aktualizácia nie je dostupná, naplánujte prechod na podporovanú vetvu PHP.

Dôležité: Aktualizácia WordPressu, Drupalu, Joomly alebo ich doplnkov automaticky neaktualizuje samotné PHP. PHP runtime je potrebné aktualizovať samostatne.

Ako zistiť, či je váš web zraniteľný

Majitelia webových stránok a správcovia serverov by nemali predpokladať, že PHP nepoužívajú len preto, že sami nespravujú PHP kód. Je potrebné preveriť celé hostingové a prevádzkové prostredie.

  1. Identifikujte všetky inštalácie PHP. Skontrolujte hostingové administrácie, virtuálne servery, kontajnery, webové servery, spravovaný hosting a produkty tretích strán, ktoré môžu obsahovať vlastnú verziu PHP.
  2. Overte verziu používanú webovou stránkou. Príkaz php -v zobrazí verziu PHP pre príkazový riadok, ale web môže používať inú verziu cez PHP-FPM, modul Apache alebo hostingom spravované runtime prostredie. Overte verziu, ktorá reálne spracúva webové požiadavky.
  3. Skontrolujte všetky weby a prostredia. Nezabudnite na produkčné a testovacie prostredia, verejne dostupné vývojové systémy, vedľajšie domény a staršie aplikácie.
  4. Overte stav bezpečnostnej opravy u dodávateľa. Distribúcie Linuxu a hostingové administrácie môžu používať vlastné číslovanie verzií alebo spätne aplikované bezpečnostné opravy. Overte, či konkrétny nainštalovaný balík obsahuje opravy PHP2Shell.
  5. Veďte evidenciu. Zaznamenajte aplikáciu, verziu PHP, umiestnenie hostingu, zodpovednú osobu a stav aktualizácie. Uľahčí to riešenie ďalších bezpečnostných incidentov.

Ak využívate zdieľaný hosting, kontaktujte poskytovateľa a požiadajte ho o potvrdenie, či bolo aktualizované PHP runtime, ktoré obsluhuje váš web.

Čo by mali urobiť majitelia webov a správcovia serverov?

1. Okamžite aktualizujte PHP

Ide o hlavné a úplné riešenie problému. Nainštalujte opravenú verziu PHP pre používanú vetvu alebo ekvivalentný bezpečnostne opravený balík od dodávateľa operačného systému či hostingu.

Po aktualizácii reštartujte alebo znovu načítajte príslušné služby, aby sa ukončili staré PHP procesy a načítala sa opravená verzia. V závislosti od prostredia to môže zahŕňať PHP-FPM, Apache, LiteSpeed, aplikačné procesy alebo iné PHP workery.

Pri kontajnerových nasadeniach aktualizujte základný obraz alebo PHP balík, vytvorte nový obraz a nasaďte ho. Aktualizácia hostiteľského systému neopraví PHP, ktoré je súčasťou už existujúceho kontajnerového obrazu.

2. Overte skutočne používanú verziu

Nespoliehajte sa iba na informáciu, že správca balíkov úspešne dokončil inštaláciu. Overte verziu PHP používanú živou webovou stránkou, skontrolujte reštart príslušných procesov a uistite sa, že cez inú doménu alebo službu nie je stále dostupná staršia verzia PHP.

Na produkčnom serveri nenechávajte verejne prístupnú stránku phpinfo(). Ak vytvoríte dočasnú diagnostickú stránku, obmedzte k nej prístup a po overení ju okamžite odstráňte.

3. Vyžiadajte si potvrdenie od poskytovateľa hostingu

Ak server nespravujete sami, požiadajte poskytovateľa o potvrdenie:

  • ktorá verzia PHP a aký PHP handler obsluhujú váš web,
  • či boli aplikované bezpečnostné opravy PHP2Shell,
  • či boli reštartované všetky príslušné PHP procesy a služby,
  • či nie sú na serveri alebo v balíkoch tretích strán stále vystavené staršie inštalácie PHP.

Všeobecné vyhlásenie poskytovateľa, že jeho platforma je aktualizovaná, nenahrádza overenie runtime prostredia konkrétnej webovej stránky.

4. Dočasné opatrenia používajte len do vykonania aktualizácie

Ak nie je možné PHP okamžite aktualizovať, postupujte podľa aktuálnych odporúčaní projektu PHP a vášho poskytovateľa hostingu alebo bezpečnostného riešenia. V závislosti od aplikácie a nasadenia môže ísť napríklad o obmedzenie verejného prístupu, vypnutie nepotrebných funkcií alebo nasadenie ochranných pravidiel na úrovni webového aplikačného firewallu (WAF).

Tieto opatrenia môžu znížiť riziko pri konkrétnych spôsoboch zneužitia, ale neposkytujú úplnú ochranu a nenahrádzajú inštaláciu bezpečnostnej aktualizácie. Zmeny konfigurácie môžu ovplyvniť nahrávanie súborov, funkčnosť aplikácie, výkon alebo dostupnosť služieb. Pred nasadením ich dôkladne otestujte a uprednostnite aktualizáciu PHP.

5. Skontrolujte logy a preverujte podozrivú aktivitu

Ak bol server vystavený internetu v čase, keď používal zraniteľnú verziu PHP, zvážte bezpečnostnú kontrolu. Medzi užitočné oblasti preverenia patria:

  • logy webového servera, reverzného proxy a WAF, najmä neobvyklé alebo nesprávne formátované požiadavky a neočakávané multipart odosielanie formulárov,
  • PHP a webserver logy s nezvyčajnými chybami nedostatku pamäte, opakovanými odpoveďami HTTP 500 alebo pádmi procesov,
  • monitorovanie procesov a systému, či PHP alebo webový server nespúšťa neočakávané podprocesy,
  • súbory webovej stránky, najmä neznáme PHP skripty, nedávno upravené súbory alebo neznáme web shelly,
  • odchádzajúce sieťové spojenia zo servera na neznáme alebo neobvyklé cieľové adresy,
  • používateľské účty aplikácie, prihlásenia administrátorov, API prístupové údaje a ďalšie autentifikačné aktivity.

Žiadny jednotlivý záznam v logu sám osebe nedokazuje zneužitie PHP2Shell. Rovnako ani absencia zjavného indikátora neznamená, že je systém bezpečný. Niektoré spôsoby útoku môžu zanechať len obmedzené množstvo dôkazov na úrovni aplikácie. Ak máte podozrenie na kompromitáciu, zachovajte relevantné logy, zapojte kvalifikovaného špecialistu na riešenie bezpečnostných incidentov a posúďte potrebu zmeny hesiel, tokenov a ďalších tajných údajov, ku ktorým mal server prístup.

6. Dodržiavajte aj ďalšie zásady bezpečnosti servera

Aktualizácia PHP by mala byť súčasťou širšieho bezpečnostného procesu:

  • prevádzkujte PHP a webserver procesy s minimálnymi potrebnými oprávneniami,
  • pravidelne aktualizujte operačný systém, webový server, CMS, pluginy, témy a závislosti,
  • odstráňte nepoužívané pluginy, rozšírenia, aplikácie a verejne dostupné služby,
  • obmedzte prístup k administrácii a podľa možností používajte viacfaktorové overovanie,
  • udržiavajte zálohy, ktoré sú pravidelne testované a chránené pred neoprávnenou zmenou,
  • monitorujte aktivitu servera a uchovávajte centralizované logy,
  • ak je to možné, oddeľte jednotlivé aplikácie a prostredia a obmedzte zbytočnú komunikáciu medzi nimi.

Týka sa PHP2Shell aj webových stránok na WordPresse?

Áno, potenciálne sa týka aj WordPress stránok. WordPress je postavený na PHP, takže web môže byť zraniteľný, ak používa zraniteľnú verziu PHP runtime. Rovnaký princíp platí pre Drupal, Joomla a vlastné PHP aplikácie.

To však neznamená, že príčinou PHP2Shell je samotný WordPress. Zraniteľnosti sa nachádzajú v PHP engine. Aktualizácia WordPressu alebo inštalácia bezpečnostného pluginu sama osebe neopraví zraniteľné PHP runtime prostredie.

Ak je váš WordPress web umiestnený u poskytovateľa hostingu, požiadajte ho o potvrdenie verzie PHP a stavu bezpečnostnej aktualizácie. Ak spravujete vlastný server, aktualizujte PHP a reštartujte príslušné služby.

Zhrnutie a odporúčanie

PHP2Shell je dôležitou pripomienkou, že bezpečnosť webovej stránky nezávisí iba od aplikačného kódu. Web môže používať pravidelne aktualizovaný redakčný systém, no napriek tomu môže byť zraniteľný kvôli základnému runtime prostrediu.

Ak vaša webová stránka používa PHP, overte skutočne používanú verziu, nainštalujte príslušnú bezpečnostnú aktualizáciu, reštartujte dotknuté služby a skontrolujte výsledný stav. Nespoliehajte sa na aktualizáciu CMS, pravidlá WAF ani dočasné konfiguračné opatrenia ako na náhradu bezpečnostnej opravy.

Ak si nie ste istí, akú verziu PHP používa váš web alebo či hostingové prostredie obsahuje potrebné bezpečnostné opravy, technická kontrola vám pomôže identifikovať rizikové systémy a určiť priority nápravy. Viac sa dočítate na stránke Správa sietí a serverov.

Oficiálne zdroje a ďalšie informácie

Tento článok slúži na všeobecné informačné a bezpečnostné účely. Nenahrádza technické posúdenie konkrétneho servera alebo aplikácie. Bezpečnostné odporúčania projektu PHP a stav balíkov jednotlivých dodávateľov sa môžu meniť. Pred zmenami v produkčnom prostredí si overte aktuálne oficiálne upozornenia PHP a pokyny svojho poskytovateľa.

Súvisiace služby

Chcete sa o tejto téme porozprávať?

Kontaktujte nás a pomôžeme vám zvoliť správny ďalší krok.

Kontaktujte nás