# CVE-2026-115560: napomena o Session Upload Progressu

> CVE-2026-115560: kada treća PHP objava od 23. 10. 2026. pogađa Vaš poslužitelj, kako provjeriti konfiguraciju i isključiti Upload Progress.

Izvor: https://phpsos.de/hr/php2shell/cve-2026-115560/  
Stanje: 25.10.2026  
Pružatelj: PHP SOS, PHP hitna pomoć i sigurnost poslužitelja. Hitna pomoć putem WhatsAppa: https://wa.me/491736494914?text=Pozdrav%20PHP%20SOS%2C%20trebamo%20pomo%C4%87%20s%20na%C5%A1im%20PHP%20poslu%C5%BEiteljem.%20Tvrtka%3A%20%E2%80%A6%20Web-stranica%3A%20%E2%80%A6

**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:

1. U konfiguraciji je kao `session.serialize_handler` upisana vrijednost `php_binary` ili `php_serialize`.
2. Aplikacija tu vrijednost za vrijeme rada putem `ini_set()` prebacuje na `php` prije nego što pozove `session_start()`.
3. 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.

```bash
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:

```bash
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.

```ini
; 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
# 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](https://phpsos.de/hr/php2shell/php-fpm-neustart/).

> **Savjet:**
> 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](https://phpsos.de/hr/php2shell/sofortmassnahmen-ohne-patch/), a opće napomene o konfiguraciji sesija u [Osiguravanje sesija u PHP-u](https://phpsos.de/hr/ratgeber/session-sicherheit-php/).

Š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](https://phpsos.de/hr/leistungen/server-haertung/) 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.

## Izvori

- [php.net: sigurnosne objave](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
