Stručne: CVE-2026-115560 je upozornenie, ktoré php.net zverejnil 23. októbra 2026. Spustenie kódu na diaľku je podľa neho možné iba pri nezvyčajnej konfigurácii relácií. Do ďalšieho riadneho vydania s opravami chýb platí náprava: nastaviť session.upload_progress.enabled=0 na strane servera a reštartovať všetkých workerov.
Čo je CVE-2026-115560?
Dva dni po záplatách pre zraniteľnosti PHP2Shell CVE-2026-109618 a CVE-2026-109619 zverejnil projekt PHP ďalšie upozornenie. CVE-2026-115560 sa týka spracovania relácií v PHP v spojení s funkciou session upload progress, ktorá ukladá priebeh prebiehajúceho nahrávania súborov do relácie.
Podľa php.net je spustenie škodlivého kódu na diaľku možné, ale iba pri nezvyčajnej konfigurácii. Úplný advisory so všetkými podrobnosťami má nasledovať s ďalším riadnym vydaním s opravami chýb. Dovtedy sú poznatky vedome stručné.
Čo robí session upload progress?
Session upload progress je pohodlnostná funkcia PHP. Ak návštevník nahráva väčší súbor, PHP počas nahrávania priebežne zapisuje údaje o priebehu do relácie: koľko údajov už dorazilo a ktorý súbor sa práve prenáša. Aplikácia môže tieto údaje súbežne vypytovať a zostaviť z nich ukazovateľ priebehu.
V praxi to využíva len málo aplikácií, pretože moderné formuláre na nahrávanie merajú priebeh zvyčajne priamo v prehliadači. V PHP je však funkcia štandardne zapnutá. Preto sa objavuje pri CVE-2026-115560 aj pri prechodných opatreniach proti PHP2Shell: čo sa nepotrebuje, malo by byť vypnuté.
Kedy je server CVE-2026-115560 dotknutý?
Podľa upozornenia php.net sa musia stretnúť tri podmienky:
- V konfigurácii je ako
session.serialize_handlerzapísaná hodnotaphp_binaryalebophp_serialize. - Aplikácia túto hodnotu za behu pomocou
ini_set()prepne naphp, skôr než zavolásession_start(). - Session upload progress je aktívny.
Štandardná hodnota session.serialize_handler je php. Zmena v konfigurácii a vrátenie v kóde je nezvyčajné, vyskytuje sa však vo vyrastených vlastných vývojoch alebo pri knižniciach s vlastným spracovaním relácií. Či sa to týka vás, dá sa preveriť.
Ako skontrolovať konfiguráciu
Najprv účinné hodnoty. CLI môže čítať iný súbor php.ini než PHP-FPM alebo mod_php; preto skontrolujte aj konfiguráciu webového servera alebo poolu FPM.
php -i | grep -E "session.serialize_handler|session.upload_progress.enabled"
grep -rn "serialize_handler\|upload_progress" /etc/php/ 2>/dev/null # cesta sa líši podľa distribúcie
Potom kód aplikácie. Nasledujúce hľadanie je čisto čítacie a ukazuje miesta, kde sa handler nastavuje za behu:
grep -rn "session.serialize_handler" /var/www/ --include="*.php"
Ak hľadanie nič nenájde a handler je v konfigurácii nastavený na php, popísaná kombinácia je nepravdepodobná. Session upload progress by ste napriek tomu mali vypnúť, pretože php.net uvádza rovnaké nastavenie aj ako prechodné opatrenie proti PHP2Shell.
Náprava: session.upload_progress.enabled=0
Hodnotu nastavte v php.ini, v poole FPM alebo v konfigurácii servera. Podľa php.net výslovne nie cez ini_set() ani .user.ini, pretože tam zaberie neskoro alebo ju môže aplikácia prepísať.
; php.ini (pre všetky pooly a SAPI, ktoré tento súbor čítajú)
session.upload_progress.enabled = 0
; alebo v poole FPM
php_admin_flag[session.upload_progress.enabled] = off
# Apache s mod_php, vo VirtualHost alebo v konfigurácii servera
php_admin_flag session.upload_progress.enabled off
Potom reštartujte všetkých workerov PHP, napríklad systemctl restart php8.3-fpm alebo pri mod_php Apache. Názvy balíkov a služieb sa líšia podľa distribúcie. Bez reštartu beží ďalej staré nastavenie. Viac na stránke Reštart PHP-FPM a všetkých workerov.
Po reštarte skontrolujte, či nastavenie naozaj zaberá: vo webovom kontexte, nielen na príkazovom riadku. Krátko zriadená stránka phpinfo chránená prístupom ukáže účinnú hodnotu; potom ju okamžite zmažte.
Zaradenie popri PHP2Shell
CVE-2026-115560 je výrazne užšia než obe zraniteľnosti PHP2Shell, ktoré zaberajú v bežných spôsoboch prevádzky bez osobitnej konfigurácie. Kto musí práve prioritizovať, mal by najprv nasadiť aktualizáciu PHP2Shell a potom nastaviť session.upload_progress.enabled=0. Obe sa dajú stihnúť v jednom servisnom okne.
Pre vedenie a netechnikov: CVE-2026-115560 nie je dôvodom na nepokoj, ale je to bod na zozname. Nastavenie sa nastaví rýchlo, na sotva niektorú aplikáciu to citeľne vplýva a zároveň pokrýva jedno z prechodných opatrení proti PHP2Shell. Ďalšie prechodné opatrenia z php.net nájdete na stránke Okamžité opatrenia, ak ešte nemôžete záplatovať, všeobecné upozornenia ku konfigurácii relácií na stránke Zabezpečenie relácií v PHP.
Čo zatiaľ nevieme: ktoré verzie PHP presne sú dotknuté a ktoré vydanie prinesie opravu. Túto stránku aktualizujeme, hneď ako advisory vyjde.
Ako konkrétne pomáha PHP SOS?
V rámci spevnenia zabezpečenia servera zavedieme nápravu trvalo a preveriteľne:
- Prečítať konfiguráciu: účinné hodnoty relácií pre každé SAPI, pool a virtuálny host.
- Prehľadať kód: miesta, kde sa handler alebo možnosti relácií menia za behu.
- Vypnúť na správnom mieste: v php.ini, poole alebo konfigurácii servera, aplikácia to nemôže prepísať, s následným reštartom.
- Sledovať: keď vyjde vydanie s opravou, nasadíme ho a zdokumentujeme stav.
Časté otázky
Je CVE-2026-115560 súčasťou PHP2Shell?
Hlásenie prišlo dva dni po záplatách PHP2Shell a týka sa tiež samotného PHP. Je to však samostatná zraniteľnosť s vlastným číslom CVE a uplatní sa iba pri určitej, nezvyčajnej konfigurácii. Aktualizácie PHP2Shell z 21. októbra ju podľa doterajšieho stavu neopravujú.
Existuje už aktualizácia proti CVE-2026-115560?
Podľa stavu z 25. 10. 2026 nie. php.net oznamuje, že úplný advisory bude nasledovať s ďalším riadnym vydaním s opravami chýb. Dovtedy je odporúčanou nápravou session.upload_progress.enabled=0.
Čo sa pokazí, ak vypnem session upload progress?
Funkcia hlási aplikácii priebeh prebiehajúceho nahrávania súborov. Zobrazenie stratia iba aplikácie, ktoré takýto ukazovateľ priebehu realizujú cez túto funkciu PHP. Samotné nahrávanie funguje ďalej.