21. októbra 2026, Luboš Zápotočný
PHP2Shell: ktoré verzie PHP sú bezpečné a čo teraz robiť
Dve kritické zraniteľnosti PHP, CVE-2026-109618 a CVE-2026-109619, opravujú verzie PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Koho sa týkajú, ktoré verzie sú bezpečné, čo skontrolovať na serveroch a čo robiť, ak stále používate PHP 8.1 alebo staršie.
Projekt PHP 21. októbra 2026 vydal PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35, ktoré opravujú dve kritické zraniteľnosti, CVE-2026-109618 a CVE-2026-109619. Obe umožňujú útočníkovi spustiť kód na webovom serveri bez prihlásenia. Dvojica je všeobecne známa ako PHP2Shell, podľa názvu exploitu, ktorý výskumníci z oboch chýb zostavili (zhrnutie spoločnosti Sansec). Bezpečnostné oznámenie PHP uvádza, že „úplným riešením je iba aktualizácia“.
Každý údaj o dodávateľoch uvedený nižšie sme overili v príslušnom zdroji 21. októbra 2026.
Dotknuté systémy
Podľa oznámenia PHP sa riziko týka „všetkých inštalácií PHP, ktoré obsluhujú webové requesty“, bez ohľadu na to, akým spôsobom je PHP pripojené k webovému serveru. Patria sem aplikácie Magento, Mage-OS, WordPress, Drupal, Laravel a Symfony aj akýkoľvek vlastný kód v PHP. Sansec uvádza, že výskumníci spustili kód bez prihlásenia na Magente 2.4.9, vo WordPresse, Drupale, Nextcloude a ďalších aplikáciách. PHP spracuje request útočníka skôr, ako ho uvidí aplikácia, preto útok nedokáže zablokovať ani vlastný kód obchodu, ani jeho rozšírenia.
Druhá zraniteľnosť môže navyše odhaliť obsah pamäte servera. Ak na serveri dostupnom z internetu bežala zraniteľná verzia, mohli z neho uniknúť heslá, API kľúče alebo údaje relácií. Po aktualizácii zvážte zmenu prístupových údajov, ktoré server používa.
Obchodníci na Shopify nemajú vlastnú inštaláciu PHP, ktorú by museli aktualizovať, pretože platformu hostuje Shopify (FAQ Shopify). Vlastné aplikácie napísané v PHP a hostované na vašich serveroch sú ohrozené rovnako ako akýkoľvek iný kód v PHP.
Bezpečné verzie
| Vetva | Bezpečná od | Bezpečnostná podpora končí |
|---|---|---|
| 8.5 | 8.5.12 | 31. decembra 2029 |
| 8.4 | 8.4.27 | 31. decembra 2028 |
| 8.3 | 8.3.36 | 31. decembra 2027 |
| 8.2 | 8.2.35 | 31. decembra 2026 |
| 8.1 a staršie | projekt PHP opravu nevydal | skončila |
Dátumy podpory pochádzajú zo stránky PHP o podporovaných verziách. Na systéme s PHP 8.2 treba túto aktualizáciu nainštalovať hneď a do konca roka prejsť na novšiu vetvu, pokiaľ nepoužíva vlastné balíky PHP z Debianu 12, ktoré udržiava tím dlhodobej podpory Debianu (DLA-4848-1).
Kontrola serverov
Inštalácia aktualizácie je zvyčajne rýchla. Hlavné riziko spočíva v presvedčení, že bola nainštalovaná, hoci nebola. Tieto otázky položte tomu, kto spravuje vaše servery:
- Akú verziu PHP webový server v skutočnosti používa? Môže sa líšiť od verzie, ktorú ukazuje príkazový riadok, a na jednom serveri môže súčasne bežať niekoľko verzií PHP.
- Dokazuje číslo verzie, že oprava je nainštalovaná? Napríklad Ubuntu pridáva opravu do svojho staršieho balíka PHP, takže opravený server s Ubuntu 24.04 stále hlási PHP 8.3.6 (oznámenie Ubuntu). V takom prípade sa s oznámením dodávateľa musí zhodovať verzia balíka.
- Reštartovalo sa PHP po aktualizácii? Bežiaci proces PHP uchováva v pamäti starý kód, kým sa nereštartuje.
- Zostavili sa obrazy Dockera nanovo? Bežiaci kontajner sa sám neaktualizuje. Oficiálne obrazy PHP na Docker Hub boli s opravenými verziami nanovo zostavené až v priebehu 21. októbra, preto obraz zostavený z nich pred týmto okamihom stále obsahuje zraniteľnú verziu.
- Rieši to poskytovateľ hostingu? Pri Adobe Commerce on Cloud spoločnosť Adobe na stránke nastavení PHP neuvádza, kedy sa aktualizuje opravná verzia PHP, a 21. októbra sme nenašli žiadne oznámenie Adobe o týchto zraniteľnostiach. Po najbližšom nasadení skontrolujte verziu, a ak je stále nižšia ako bezpečná verzia, obráťte sa na podporu spoločnosti Adobe.
Obchody na starších verziách Magenta
Podľa systémových požiadaviek spoločnosti Adobe môže obchod Magento používať len určité verzie PHP. Obchody na verziách 2.4.8 a 2.4.9 môžu prejsť na bezpečnú verziu ešte dnes. Obchod na verzii 2.4.7 môže používať PHP 8.3, čo je lepšia voľba ako 8.2.
Najnovšie patche verzií 2.4.4 a 2.4.5 podporujú iba PHP 8.1, ktoré už od projektu PHP nedostáva opravy, a bezpečnostná podpora spoločnosti Adobe pre tieto vetvy už skončila (zásady životného cyklu). Takýto obchod je až do dokončenia upgradu Magenta odkázaný na opravu od dodávateľa operačného systému (pozri nasledujúcu časť).
PHP 8.1 a staršie
Projekt PHP už verzie 8.1 a staršie nevydáva. Pre verzie 8.1, 8.0 a 7.4 zverejnil minimálne opravy vo forme zdrojového kódu a používateľov odkazuje na ich dodávateľov. Niektorí dodávatelia ich už vydali:
- Ubuntu opravilo PHP 8.1 v Ubuntu 22.04 v rámci bežných aktualizácií (USN-8948-1) a staršie verzie PHP v starších vydaniach Ubuntu pre zákazníkov Ubuntu Pro (USN-8948-2).
- Repozitáre Ondřeja Surého, bežný zdroj PHP pre Debian a Ubuntu, zverejnili opravené zostavenia PHP 5.6 až 8.1 (PPA).
- Red Hat opravil balíky PHP 7.4 v RHEL 8, pre ostatné verzie PHP v RHEL 8, 9 a 10 zatiaľ opravu nevydal (údaje Red Hat).
Projekt PHP tieto opravy označuje ako „Minimal mitigation for EOL version“, teda minimálne zmiernenie pre verziu bez podpory. Zabraňujú známym spôsobom útoku na verziu, ktorá žiadne iné bezpečnostné opravy nedostáva. Upgrade na podporovanú verziu PHP je naďalej nevyhnutný.
Dočasné opatrenia do aktualizácie
PHP uvádza zmeny konfigurácie, ktoré riziko znižujú, a zároveň upozorňuje, že „obmedzujú vystavenie konkrétnym spôsobom útoku, ale inštaláciu nerobia bezpečnou“. Patrí medzi ne vypnutie session upload progress a zníženie maximálnej veľkosti requestu. Úplný zoznam je v oznámení PHP. Cloudflare tiež nasadil pravidlá firewallu proti týmto zraniteľnostiam. Obe opatrenia znižujú riziko, kým sa aktualizácia nenainštaluje.
Ako dočasné riešenie sa niekedy odporúča blokovať multipart requesty, teda formát, ktorý prehliadače používajú na nahrávanie súborov. Podľa analýzy spoločnosti Sansec to v obchode Magento zablokuje aj nahrávanie obrázkov produktov v Admine a v niektorých obchodoch aj košík alebo checkout. Po každej takejto zmene vytvorte testovaciu objednávku.
Stav zneužívania
Cloudflare uvádza, že podrobnosti unikli ešte pred vydaním a že „zaznamenal útočnú prevádzku zameranú na našich zákazníkov“ (príspevok Cloudflare). Pri našej kontrole 21. októbra sa ani jedna z CVE ešte nenachádzala v katalógu CISA Known Exploited Vulnerabilities.
Ak si nie ste istí, akú verziu PHP vaše servery používajú alebo či bola aktualizácia nainštalovaná na všetkých, môžeme ich za vás skontrolovať a aktualizovať. Udržiavanie aktuálnej verzie PHP je súčasťou našej priebežnej starostlivosti. Ak potrebujete jednorazovú aktualizáciu, napíšte nám.