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-109618: RCE cez stav out-of-memory

CVE-2026-109618 je jedna z dvoch zraniteľností PHP2Shell: stav out-of-memory môže PHP prerušiť uprostred spracovania požiadavky. Opravené od PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35.

Stav 4 min čítaniaPHP2Shell

Stručne: CVE-2026-109618 je jedna z dvoch zraniteľností za PHP2Shell. Stav out-of-memory môže prerušiť PHP v čase, keď sú údaje požiadavky iba čiastočne inicializované; pri upratovaní sa potom neplatné údaje môžu považovať za platné. To umožňuje spustenie kódu bez prihlásenia. Chyba je opravená v PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35.

Čo je CVE-2026-109618?

CVE-2026-109618 (identifikátor GitHub GHSA-w8hw-w9fx-j79w) je zraniteľnosť typu chyba pamäte v jadre PHP. Podľa CVSS v4.0 má skóre 9,2. Spolu s CVE-2026-109619 tvorí to, čo médiá označujú ako PHP2Shell.

Účinkom je takzvané unauthenticated Remote Code Execution: útočník môže na diaľku a bez používateľského účtu spúšťať kód na webovom serveri. Zraniteľnosť tak patrí do najnebezpečnejšej triedy slabín, aké webový server môže mať.

Ako zraniteľnosť v zásade vzniká

Keď PHP spracúva webovú požiadavku, interne pre ňu zakladá dátové štruktúry, napríklad pre odoslané údaje formulára. Ak PHP pritom narazí na svoju hranicu pamäte, preruší sa stavom out-of-memory. Podľa php.net sa to môže stať v čase, keď sú údaje požiadavky iba čiastočne inicializované.

Na konci každej požiadavky PHP upratuje a uvoľňuje pamäť. Práve tu je chyba: upratovanie môže neplatné, iba napoly založené údaje považovať za platné. Z tohto chybného správania sa za určitých podmienok dá odvodiť spustenie kódu.

Prečo je takáto chyba taká vážna? Chyba pamäte v programovacom jazyku sa dotýka všetkých aplikácií, ktoré na ňom bežia, bez ohľadu na to, ako starostlivo sú naprogramované. Udržiavaná inštalácia WordPressu s aktuálnymi doplnkami je dotknutá rovnako ako stará vlastná aplikácia. Preto tu nepomôže aktualizácia aplikácie, ale iba aktualizácia PHP.

Ďalšie technické podrobnosti o zneužití vedome nezverejňujeme. Na obranu nie sú potrebné: rozhodujúce je, či váš server používa opravenú verziu a či naozaj bežia nové procesy.

Dotknuté verzie a spôsoby prevádzky

Vetva PHP Posledný stav pred opravou Opravené od
8.5 8.5.11 8.5.12
8.4 8.4.26 8.4.27
8.3 8.3.35 8.3.36
8.2 8.2.34 8.2.35
8.1 a staršie žiadna oficiálna aktualizácia iba minimálne backporty zdrojového kódu pre 7.4, 8.0, 8.1

Dotknuté sú spôsoby prevádzky PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP a LiteSpeed. Tím PHP hodnotí riziko pri mod_php ako najvyššie. Distribúcie a poskytovatelia hostingu čiastočne nasadzujú backporty, takže sa zobrazuje staršie číslo verzie, hoci je chyba opravená. Rozhodujúci je stav balíka a potvrdenie poskytovateľa.

K rádu veľkosti: Palo Alto Networks (Unit 42) napočítalo viac ako 22,6 milióna exponovaných, potenciálne zraniteľných inštancií. BSI vyhlásil výstražný stupeň 3 (oranžový) a počítal s rýchlym rozsiahlym zneužitím.

Odstránenie CVE-2026-109618: aktualizácia a reštart

Jediná úplná náprava je aktualizácia. Najprv skontrolujte verziu a stav balíka. Názvy balíkov sa líšia podľa distribúcie; príklady vychádzajú z PHP 8.3:

php -v
apt policy php8.3-fpm          # Debian/Ubuntu
dnf info php-fpm               # RHEL, AlmaLinux, Rocky, Fedora
rpm -q --changelog php-fpm | grep -i "CVE-2026-109618"

Ak changelog balíka uvádza číslo CVE, backport je nasadený. Ak chýba, neznamená to automaticky, že balík je zraniteľný; vtedy pomôže porovnanie s tabuľkou verzií alebo dopyt u poskytovateľa.

Po aktualizácii sa musia reštartovať všetky procesy PHP, napríklad pomocou systemctl restart php8.3-fpm alebo pri mod_php reštartom Apache. Ako zabezpečiť, že už nebeží žiadny starý worker, nájdete na stránke Reštart PHP-FPM a všetkých workerov.

Prechodné opatrenia, ak aktualizácia ešte nejde

php.net zverejnil pre PHP2Shell prechodné opatrenia. Platia spoločne pre obe zraniteľnosti a výslovne nejde o úplnú ochranu. To, že sa viaceré z nich týkajú hraníc pamäte, zodpovedá spúšťaču out-of-memory pri CVE-2026-109618; oficiálne priradenie jednotlivých opatrení k jednotlivým CVE však neexistuje.

; Príklad pool FPM, napr. /etc/php/8.3/fpm/pool.d/www.conf (cesta sa líši podľa distribúcie)
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M          ; 32M, ak sú potrebné uploady
php_admin_value[upload_max_filesize] = 6M    ; immer unter post_max_size
php_admin_flag[session.upload_progress.enabled] = off

Hodnoty musia byť nastavené tak, aby ich aplikácie nemohli prepísať, preto php_admin_value. S memory_limit=-1 potrebuje služba hranicu pamäte zvonka, cez kontajner alebo cgroup, nie cez RLIMIT_AS alebo RLIMIT_DATA. Na PHP 8.5 pribúda fatal_error_backtraces=0. Všetky podrobnosti nájdete na stránke Okamžité opatrenia, ak ešte nemôžete záplatovať.

Dôležité

Ak nie je hneď možná ani aktualizácia, ani prechodné opatrenia, BSI odporúča dotknuté webové servery dočasne odpojiť od siete.

Ako konkrétne pomáha PHP SOS?

Cez našu službu záplatovania PHP uzatvárame CVE-2026-109618 štruktúrovane:

  • Zaznamenať aktuálny stav: vetva PHP, spôsob prevádzky, zdroj balíkov a stav backportov na každom serveri.
  • Nasadiť aktualizáciu z vhodného zdroja balíkov alebo, kde to nejde, čisto nastaviť prechodné opatrenia v konfigurácii poolu alebo servera.
  • Skontrolovať reštart: overíme, že už nebežia žiadne staré procesy PHP.
  • Doklad: Dostanete dokumentáciu s verziami a stavmi balíkov pred zásahom a po ňom, napríklad pre vedenie, poisťovateľa alebo ochranu údajov.

Časté otázky

Ako kritická je CVE-2026-109618?

Zraniteľnosť je hodnotená podľa CVSS v4.0 skóre 9,2, teda je kritická. Umožňuje spustenie škodlivého kódu na diaľku bez prihlásenia. BSI (nemecký Spolkový úrad pre informačnú bezpečnosť) k PHP2Shell vyhlásil výstražný stupeň 3 (oranžový).

Stačí zvýšiť memory_limit?

Nie. php.net uvádza memory_limit=-1, nastavený pevne v konfigurácii servera, ako jedno z viacerých prechodných opatrení. Výslovne nejde o úplnú ochranu a vyžaduje hranicu pamäte cez kontajner alebo cgroup. Riešením zostáva aktualizácia.

Aký identifikátor GHSA patrí k CVE-2026-109618?

V GitHub Security Advisory je zraniteľnosť vedená pod GHSA-w8hw-w9fx-j79w. Druhá zraniteľnosť PHP2Shell, CVE-2026-109619, má identifikátor GHSA-6wmf-4rv5-p3rp.

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