Vážna bezpečnostná chyba v PHP: je váš web v ohrození?

Engineering
Samuel Trstenský Samuel Trstenský
6 min čítania

V skratke

  • Dňa 21. októbra 2026 vydali vývojári PHP mimoriadnu opravu dvoch vážnych bezpečnostných chýb. Ich závažnosť je 9,2 z 10.
  • Útočník cez ne môže prevziať kontrolu nad serverom, na ktorom beží váš web, alebo z neho vytiahnuť heslá a prístupové kľúče. Nepotrebuje na to žiadne prihlasovacie údaje.
  • Ak máte PHP 8.2 až 8.5, stačí aktualizovať na najnovšiu verziu: 8.2.35, 8.3.36, 8.4.27 alebo 8.5.12.
  • Ak máte staršie PHP 8.1, 8.0 alebo 7.4, nová verzia pre vás nevyjde. Existuje len samotná oprava, ktorú musí ručne nasadiť správca servera alebo hosting. Pre PHP 7.3 a staršie neexistuje ani táto oprava, jediné riešenie je prechod na novšie PHP. Práve takéto staršie systémy sú najviac ohrozené.

Čo je PHP2Shell

PHP je programovací jazyk, na ktorom beží veľká časť webov: WordPress, väčšina e-shopov aj množstvo firemných systémov. PHP2Shell je spoločný názov pre dve chyby priamo v PHP. Nejde teda o chybu konkrétneho pluginu či šablóny, ktorú by stačilo vymeniť.

Obe chyby vedú k tomu istému. Útočník pošle na váš web jednu špeciálne upravenú požiadavku a môže na serveri spustiť vlastný program. Nemusí sa nikam prihlásiť a nezáleží ani na tom, ako dobre je napísaná vaša aplikácia (Huntress).

Prečo je to vážne

Informácie o chybách unikli skôr, než bola oprava hotová, preto ju vývojári PHP vydali o deň skôr, ako plánovali. Amazon zachytil prvý pokus o útok už 17. októbra, teda štyri dni pred zverejnením opravy (AWS Security). Bezpečnostná firma Wiz predviedla funkčný útok na WordPress, Drupal aj Joomla a návod na zneužitie je verejne dostupný na internete.

Zasiahnutý je prakticky každý server, na ktorom PHP obsluhuje web, bez ohľadu na to, ako je nastavený (PHP).

Pred chybami varuje aj slovenský Národný bezpečnostný úrad, ktorý ich označil za kritické.

Ste ohrození?

Ak váš web, e-shop alebo interný systém beží na PHP a dá sa k nemu dostať z internetu, rátajte s tým, že áno. Čo s tým robiť, závisí od dvoch vecí: akú verziu PHP máte a kto sa stará o server. Ak to neviete, opýtajte sa svojho dodávateľa alebo hostingu.

Vaša situáciaČo robiť
PHP 8.2 až 8.5, o server sa stará hostingOverte si u hostingu, že opravu už nasadil.
PHP 8.2 až 8.5, vlastný server alebo cloudAktualizáciu na 8.2.35, 8.3.36, 8.4.27 alebo 8.5.12 musí spraviť váš správca.
PHP 8.1 a staršieTieto verzie už oficiálne nikto neudržiava. Opravu treba nasadiť ručne, prípadne ju dodá výrobca operačného systému servera.
Server s Linuxom (Ubuntu, Red Hat a pod.)Oprava môže prísť aj bez zmeny čísla verzie PHP. Správca to overí v bezpečnostných oznámeniach systému.
Chcem PHP bezpečnostnú kontrolu →

Čo spraviť hneď

  1. Spíšte si všetky systémy, ktoré bežia na PHP. Nielen hlavný web, ale aj starú administráciu, intranet či zabudnutú kampaňovú stránku.
  2. Všade, kde sa dá, aktualizujte PHP na opravenú verziu. Iba aktualizácia problém úplne odstráni.
  3. Kde aktualizácia hneď nejde, nech správca nasadí dočasnú ochranu. Technicky ide o vypnutie nastavenia session.upload_progress.enabled, nastavenie memory_limit na hodnotu -1 a obmedzenie veľkosti požiadaviek na server (PHP). Hodnota -1 vypne limit pamäte pre PHP, preto musí správca strážiť pamäť servera inak. Riziko to zníži, ale neodstráni.
  4. Systémy, ktoré sa opraviť nedajú, dočasne odpojte z internetu alebo ich schovajte za VPN či firewall pre weby. Cloudflare proti týmto útokom nasadil ochranu zadarmo.
  5. Ak máte podozrenie, že sa do systému už niekto dostal, zmeňte heslá a prístupové kľúče, ktoré systém používa.

Prečo pri starších systémoch nestačí kliknúť na „aktualizovať“

Prechod zo staršieho PHP 7.4 alebo 8.0 na novšie nie je ako aktualizácia aplikácie v mobile. Staršie systémy často využívajú časti PHP, ktoré nové verzie zmenili alebo zrušili. Po prechode tak môže prestať fungovať niečo, čo nikto neotestoval.

Firmy preto zvyčajne spravia jednu z dvoch chýb. Aktualizáciu odkladajú, lebo sa boja, že niečo pokazia. Alebo ju spravia naslepo a až od zákazníkov sa dozvedia, že nefungujú objednávky či faktúry. Pri PHP2Shell si nemôžete dovoliť ani jedno.

Rozumný postup má tri kroky: najprv dočasne znížiť riziko, potom zistiť, čo v systéme bráni prechodu na nové PHP, a nakoniec prejsť na novú verziu plánovane a s otestovaním. Na druhý krok slúži audit legacy kódu: ukáže, čo treba upraviť a v akom poradí.

Ako vám pomôžeme

V BRACKETS robíme audity legacy kódu, teda kontroly starších systémov. Váš kód prejde skúsený architekt spolu so špecializovanými AI agentmi, nie začínajúci programátor.

  • Zistíme, kde všade vám beží PHP a ako veľmi ste ohrození.
  • Nasadíme dočasnú ochranu tam, kde sa nedá hneď aktualizovať.
  • Zmapujeme, čo vo vašom systéme bráni prechodu na novšie PHP.
  • Pripravíme plán prechodu s odhadom náročnosti každého kroku a vieme ho aj zrealizovať.
Chcem PHP bezpečnostnú kontrolu →

Časté otázky

PHP2Shell je názov dvoch vážnych bezpečnostných chýb v PHP s označením CVE-2026-109618 a CVE-2026-109619. Ich závažnosť je 9,2 z 10. Útočník cez ne môže bez prihlásenia ovládnuť server alebo z neho získať citlivé údaje, napríklad heslá.

Opravené sú verzie 8.5.12, 8.4.27, 8.3.36 a 8.2.35, ktoré vyšli 21. októbra 2026. Pre staršie PHP 8.1, 8.0 a 7.4 nová verzia nevyjde. Existuje k nim len samotná oprava, ktorú musí ručne nasadiť správca servera alebo hosting. Pre PHP 7.3 a staršie nevyšla ani táto oprava.

Áno. Chyba je v PHP, na ktorom tieto systémy bežia, nie v nich samotných. Ohrozená je preto každá stránka na neopravenom PHP. Na WordPress, Drupal aj Joomla už bol predvedený funkčný útok.

Áno. Amazon zachytil prvý pokus o útok 17. októbra 2026, ešte pred zverejnením opravy. Návod na zneužitie je verejne dostupný, preto netreba čakať.

Nová verzia PHP pre ne nevyjde, ale tím PHP k nim zverejnil samotnú opravu. Nasadiť ju musí ručne správca servera alebo hosting, a kým sa to stane, pomôže dočasná ochrana na serveri a obmedzenie prístupu z internetu. Staršie PHP 7.3 a nižšie už nikto neudržiava a nemá ani túto opravu. Dlhodobo je jediné riešenie prejsť na novšie PHP.

Nie. Toto nastavenie zablokuje známy spôsob útoku len na jednu z dvoch chýb. Úplne vás ochráni iba aktualizácia PHP.

Na to slúži audit legacy kódu. Zmapuje, čo sa s novým PHP pokazí a čo treba upraviť, a dá vám plán s odhadom náročnosti každého kroku. Bežný audit trvá dva až štyri týždne.

Zdroje

Plánujete nový digitálny produkt?
Povedzte nám o ňom viac.