Aktuálna situácia: PHP2Shell. Dve kritické zraniteľnosti PHP (CVSS 9.2) umožňujú spustenie škodlivého kódu bez prihlásenia. Záplaty od 21. 10. 2026.Čo treba urobiť teraz →

CVE-2026-109619: RCE cez zastaraný globálny stav

CVE-2026-109619 je druhá zraniteľnosť PHP2Shell: vnútorný stav požiadavky môže po uvoľnení pamäte zostať zachovaný a využiť ho môže ďalšia požiadavka v tom istom workerovi.

Stav 4 min čítaniaPHP2Shell

Stručne: CVE-2026-109619 je druhá zraniteľnosť za PHP2Shell. Vnútorný stav, ktorý patrí k požiadavke, môže po uvoľnení pamäte zostať zachovaný; neskoršia požiadavka v tom istom workerovi ho môže využiť, skôr než sa vynuluje. Následkom je spustenie kódu bez prihlásenia. Náprava: aktualizácia na PHP 8.5.12, 8.4.27, 8.3.36 alebo 8.2.35 a reštart všetkých workerov.

Čo je CVE-2026-109619?

CVE-2026-109619 (identifikátor GitHub GHSA-6wmf-4rv5-p3rp) má podľa CVSS v4.0 skóre 9,2. Spolu s CVE-2026-109618 tvorí PHP2Shell. Obe zraniteľnosti sú v samotnom PHP, a nie v aplikácii.

Účinok je rovnaký ako pri sesterskej zraniteľnosti: útočník môže na diaľku, bez hesla a bez používateľského účtu, spúšťať kód na serveri. Príčina je však iná.

Prečo je zastaraný stav vo workerovi nebezpečný

Webový server PHP nespúšťa pre každú požiadavku nový proces. Pri PHP-FPM, Apache s mod_php, LiteSpeed alebo FrankenPHP spracúva jeden worker postupne mnoho požiadaviek. Medzi dvoma požiadavkami PHP vynuluje svoj vnútorný stav, aby sa nič z požiadavky A nedostalo do požiadavky B.

Pri CVE-2026-109619 sa toto vynulovanie nepodarí úplne. Podľa php.net môže vnútorný stav patriaci k požiadavke po uvoľnení pamäte zostať zachovaný. Neskoršia požiadavka v tom istom workerovi môže tento zastaraný stav využiť, skôr než sa vynuluje. Zjednodušene: niečo sa používa ďalej, hoci to už vlastne nie je platné.

Z pohľadu prevádzky je to pozoruhodné. Opakované použitie workerov je zámerné, pretože robí webové servery rýchlymi: worker sa nemusí pre každú požiadavku nanovo spúšťať, načítavať rozšírenia a zakladať pamäť. Zraniteľnosť teda zasahuje vlastnosť, ktorú má prakticky každá produktívna inštalácia PHP. php.net neuvádza žiadnu konfiguráciu, ktorá by problém úplne vylúčila; preto vedie cesta cez aktualizáciu.

Podrobnosti o zneužití nezverejňujeme. Pre prevádzkovateľov platí: každý spôsob prevádzky, v ktorom workery obsluhujú viac požiadaviek, treba mať na očiach, a práve tie sú bežné.

Obe zraniteľnosti PHP2Shell v porovnaní

Znak CVE-2026-109618 CVE-2026-109619
Identifikátor GitHub GHSA-w8hw-w9fx-j79w GHSA-6wmf-4rv5-p3rp
Hodnotenie CVSS v4.0 9,2 CVSS v4.0 9,2
Spúšťač Out-of-memory počas inicializácie údajov požiadavky Vnútorný stav zostáva po uvoľnení zachovaný
Účinok Spustenie kódu bez prihlásenia Spustenie kódu bez prihlásenia
Opravené v 8.5.12, 8.4.27, 8.3.36, 8.2.35 8.5.12, 8.4.27, 8.3.36, 8.2.35

Dotknuté sú PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP a LiteSpeed. Najvyššie riziko vidí tím PHP pri mod_php; prečo, vysvetľujeme na stránke Prečo nesie mod_php najvyššie riziko.

Uzavretie CVE-2026-109619: aktualizácia, potom reštart všetkých workerov

Práve pri tejto zraniteľnosti je reštart rozhodujúci. Kým bežia staré workery v pamäti, server pracuje ďalej s chybným kódom, aj keď nové súbory už dávno ležia na disku.

Skontrolujte verziu a stav balíka. Názvy balíkov sa líšia podľa distribúcie a rozhrania poskytovateľa hostingu:

php -v
php-fpm8.3 -v                  # binárka FPM môže mať inú verziu ako CLI
apt policy php8.3-fpm          # Debian/Ubuntu
dnf info php-fpm               # rodina RHEL
rpm -q --changelog php-fpm | grep -i "CVE-2026-109619"

Potom reštartujte všetky dotknuté služby:

sudo systemctl restart php8.3-fpm     # pre každú nainštalovanú verziu PHP
sudo systemctl restart apache2        # pri mod_php; v RHEL sa služba volá httpd

Ak vaša distribúcia alebo poskytovateľ hostingu nasadí backport, zobrazené číslo verzie môže zostať rovnaké. Potom rozhodujú changelog balíka a písomné potvrdenie poskytovateľa. Kontrolu krok za krokom nájdete na stránke Reštart PHP-FPM a všetkých workerov.

Tip

Zapíšte si dátum a čas reštartu. Pre neskoršie posúdenie, či k útoku došlo pred záplatou alebo po nej, je tento okamih najdôležitejším referenčným bodom.

Čo zostáva urobiť po záplate

Záplata nedokazuje, že sa predtým nič nestalo. Podľa správ médií bol prvý pokus o útok pozorovaný 17. októbra, štyri dni pred záplatami. Uchovajte logy servera od 20. októbra, ako odporúča odborná tlač, a preverte server z hľadiska nápadností. Upozornenia k tomu poskytuje stránka Som už kompromitovaný?.

Myslite pritom na dosah: pri úspešnom spustení kódu má útočník práva procesu PHP. Môže čítať, čo smie čítať aplikácia, napríklad konfiguračné súbory s prístupmi k databáze alebo kľúčmi API. Ak sa incident potvrdí, tieto prístupové údaje sa majú po vyčistení obnoviť.

Ako konkrétne pomáha PHP SOS?

S službou záplatovania PHP zrealizujeme opravu dohľadateľne:

  • Zaznamenať: Aké verzie PHP a spôsoby prevádzky bežia na ktorom serveri a ktorý zdroj balíkov ich dodáva?
  • Záplatovať: Aktualizácia z správneho zdroja alebo prechodné opatrenia podľa php.net tam, kde aktualizácia ešte nie je možná.
  • Skontrolovať reštart: Kontrolujeme proces za procesom, že beží už iba opravená verzia.
  • Zdokumentovať: Verzie, stavy balíkov a časy reštartu, aby ste mohli stav doložiť.

Časté otázky

Čím sa líši CVE-2026-109619 od CVE-2026-109618?

CVE-2026-109618 vzniká, keď stav out-of-memory preruší požiadavku uprostred inicializácie. CVE-2026-109619 sa týka stavu, ktorý po skončení požiadavky zostane vo workerovi. Obe vedú k spusteniu kódu bez prihlásenia a sú opravené v rovnakých verziách PHP.

Pomôže častejší reštart workerov PHP-FPM?

Ako náhrada aktualizácie sa nehodí. php.net častejšie reštarty workerov neuvádza ako prechodné opatrenie. Workerov však musíte reštartovať po aktualizácii, aby vôbec bežala opravená verzia.

Chráni ma aktualizácia CMS pred CVE-2026-109619?

Nie. Zraniteľnosť je v PHP, a nie vo WordPresse, Shopware, TYPO3 či inom systéme. Uzavrie ju iba aktualizácia PHP alebo potvrdený backport poskytovateľa.

Sú známe stopy útoku cez CVE-2026-109619?

Potvrdené Indicators of Compromise sa doteraz nezverejnili. Rozpoznanie je založené na analýze správania, napríklad nových súboroch PHP, nezvyčajných odchádzajúcich spojeniach alebo neznámych cronjoboch.

Zdroje

Okamžitý kontakt

Každá hodina sa počíta. Napíšte nám hneď.

Stručne opíšte systém, verziu PHP a svoje pozorovanie. Ozveme sa, vyjasníme situáciu a budeme pracovať na diaľku, kým nebude incident uzavretý a zdokumentovaný.

Okamžitá pomoc