Ukratko: CVE-2026-115560 je napomena koju je php.net objavio 23. listopada 2026. Izvršavanje koda izdaleka prema njoj je moguće samo kod neuobičajene konfiguracije sesija. Do sljedećeg redovitog izdanja s ispravcima pogrešaka mjera glasi: postaviti session.upload_progress.enabled=0 na strani poslužitelja i ponovno pokrenuti sve workere.
Što je CVE-2026-115560?
Dva dana nakon zakrpa za PHP2Shell ranjivosti CVE-2026-109618 i CVE-2026-109619 PHP projekt objavio je još jednu napomenu. CVE-2026-115560 odnosi se na PHP-ovu obradu sesija u vezi s funkcijom Session Upload Progress, koja napredak tekućih prijenosa datoteka sprema u sesiju.
Prema php.net-u moguće je izvršavanje zlonamjernog koda izdaleka, ali samo kod neuobičajene konfiguracije. Cjelovit advisory sa svim pojedinostima trebao bi uslijediti sa sljedećim redovitim izdanjem s ispravcima pogrešaka. Do tada je razina znanja namjerno oskudna.
Što radi Session Upload Progress?
Session Upload Progress je PHP-ova funkcija radi udobnosti. Kad posjetitelj prenosi veću datoteku, PHP tijekom prijenosa neprestano upisuje podatke o napretku u sesiju: koliko je podataka već stiglo i koja se datoteka upravo prenosi. Aplikacija može paralelno dohvaćati te podatke i iz njih izraditi traku napretka.
U praksi to koristi samo nekoliko aplikacija jer moderni obrasci za prijenos napredak obično mjere izravno u pregledniku. U PHP-u je funkcija ipak zadano uključena. Zato se pojavljuje i kod CVE-2026-115560 i kod privremenih mjera protiv PHP2Shella: što se ne koristi, trebalo bi biti isključeno.
Kada je poslužitelj pogođen CVE-2026-115560?
Prema napomeni php.net-a moraju se podudariti tri uvjeta:
- U konfiguraciji je kao
session.serialize_handlerupisana vrijednostphp_binaryiliphp_serialize. - Aplikacija tu vrijednost za vrijeme rada putem
ini_set()prebacuje naphpprije nego što pozovesession_start(). - Session Upload Progress je aktivan.
Zadana vrijednost session.serialize_handler je php. Promjena u konfiguraciji i vraćanje u kodu neuobičajeni su, ali se pojavljuju u razvijenim vlastitim razvojima ili kod biblioteka s vlastitom obradom sesija. Odnosi li se to na Vas, može se provjeriti.
Ovako provjerite svoju konfiguraciju
Prvo djelotvorne vrijednosti. CLI može čitati drugi php.ini od PHP-FPM-a ili mod_php; zato provjerite i konfiguraciju web-poslužitelja ili FPM poola.
php -i | grep -E "session.serialize_handler|session.upload_progress.enabled"
grep -rn "serialize_handler\|upload_progress" /etc/php/ 2>/dev/null # putanja se razlikuje ovisno o distribuciji
Zatim kod aplikacije. Sljedeće pretraživanje je isključivo čitajuće i pokazuje mjesta na kojima se handler postavlja za vrijeme rada:
grep -rn "session.serialize_handler" /var/www/ --include="*.php"
Ako pretraga ništa ne nađe, a handler je u konfiguraciji postavljen na php, opisana kombinacija je malo vjerojatna. Session Upload Progress ipak biste trebali isključiti jer php.net istu postavku navodi i kao privremenu mjeru protiv PHP2Shella.
Mjera: session.upload_progress.enabled=0
Postavite vrijednost u php.ini, u FPM poolu ili u konfiguraciji poslužitelja. Prema php.net-u izričito ne putem ini_set() ili .user.ini, jer tamo djeluje prekasno ili je aplikacija može nadjačati.
; php.ini (za sve poolove i SAPI-je koji čitaju ovu datoteku)
session.upload_progress.enabled = 0
; ili u FPM poolu
php_admin_flag[session.upload_progress.enabled] = off
# Apache s mod_php, u VirtualHostu ili u konfiguraciji poslužitelja
php_admin_flag session.upload_progress.enabled off
Zatim ponovno pokrenite sve PHP workere, primjerice systemctl restart php8.3-fpm ili Apache kod mod_php. Nazivi paketa i usluga razlikuju se po distribuciji. Bez ponovnog pokretanja stara postavka i dalje vrijedi. Više na stranici Ponovno pokretanje PHP-FPM-a i svih workera.
Nakon ponovnog pokretanja provjerite djeluje li postavka doista: u web kontekstu, a ne samo u naredbenom retku. Nakratko postavljena, zaštićena phpinfo stranica pokazuje djelotvornu vrijednost; nakon toga je odmah obrišite.
Procjena uz PHP2Shell
CVE-2026-115560 je znatno uži od dviju PHP2Shell ranjivosti, koje djeluju u uobičajenim načinima rada bez posebne konfiguracije. Tko mora odrediti prioritete, trebao bi prvo instalirati PHP2Shell ažuriranje, a zatim postaviti session.upload_progress.enabled=0. Oboje je izvedivo u jednom prozoru za održavanje.
Za upravu i netehničke osobe: CVE-2026-115560 nije razlog za uznemirenost, ali je točka na popisu. Postavka se brzo podešava, jedva utječe na ijednu aplikaciju i istodobno pokriva jednu od privremenih mjera protiv PHP2Shella. Ostale privremene mjere php.net-a nalaze se na stranici Hitne mjere ako još ne možete zakrpati, a opće napomene o konfiguraciji sesija u Osiguravanje sesija u PHP-u.
Što još ne znamo: koje su točno verzije PHP-a pogođene i koje izdanje donosi ispravak. Ovu ćemo stranicu ažurirati čim advisory izađe.
Kako PHP SOS konkretno pomaže?
U sklopu ojačavanja poslužitelja mjeru provodimo trajno i provjerljivo:
- Pročitati konfiguraciju: djelotvorne vrijednosti sesija po SAPI-ju, poolu i virtualnom hostu.
- Pretražiti kod: mjesta na kojima se handler ili opcije sesija mijenjaju za vrijeme rada.
- Isključiti na pravom mjestu: u php.ini, poolu ili konfiguraciji poslužitelja, bez mogućnosti da ih aplikacija nadjača, uz naknadno ponovno pokretanje.
- Pratiti: kad izađe izdanje s ispravkom, instaliramo ga i dokumentiramo stanje.
Česta pitanja
Je li CVE-2026-115560 dio PHP2Shella?
Objava je stigla dva dana nakon PHP2Shell zakrpa i također se odnosi na sam PHP. No to je zasebna ranjivost s vlastitim CVE brojem i djeluje samo kod određene, neuobičajene konfiguracije. PHP2Shell ažuriranja od 21. listopada je prema dosadašnjem stanju ne otklanjaju.
Postoji li već ažuriranje protiv CVE-2026-115560?
Prema stanju od 25. 10. 2026. ne. php.net najavljuje da će cjelovit advisory slijediti sa sljedećim redovitim izdanjem s ispravcima pogrešaka. Do tada je preporučena mjera session.upload_progress.enabled=0.
Što se pokvari ako isključim Session Upload Progress?
Funkcija aplikaciji javlja napredak tekućih prijenosa datoteka. Prikaz gube samo aplikacije koje takvu traku napretka izvode putem ove PHP funkcije. Sam prijenos i dalje radi.