# CVE-2026-115560: бележка за Session Upload Progress

> CVE-2026-115560: кога третото съобщение за PHP от 23.10.2026 г. засяга Вашия сървър, как да проверите конфигурацията и да изключите Upload Progress.

Източник: https://phpsos.de/bg/php2shell/cve-2026-115560/  
Актуалност: 25.10.2026  
Доставчик: PHP SOS, Спешна помощ за PHP и сигурност на сървъри. Незабавна помощ по WhatsApp: https://wa.me/491736494914?text=%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D0%B5%D0%B9%D1%82%D0%B5%2C%20PHP%20SOS%2C%20%D0%B8%D0%BC%D0%B0%D0%BC%D0%B5%20%D0%BD%D1%83%D0%B6%D0%B4%D0%B0%20%D0%BE%D1%82%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%20%D1%81%20%D0%BD%D0%B0%D1%88%D0%B8%D1%8F%20PHP%20%D1%81%D1%8A%D1%80%D0%B2%D1%8A%D1%80.%20%D0%A4%D0%B8%D1%80%D0%BC%D0%B0%3A%20%E2%80%A6%20%D0%A3%D0%B5%D0%B1%D1%81%D0%B0%D0%B9%D1%82%3A%20%E2%80%A6

**Накратко:** CVE-2026-115560 е бележка, публикувана от php.net на 23 октомври 2026 г. Според нея отдалечено изпълнение на код е възможно само при необичайна конфигурация на сесиите. До следващото редовно издание с поправки на грешки средството е: да се зададе `session.upload_progress.enabled=0` от страна на сървъра и да се рестартират всички worker процеси.

## Какво е CVE-2026-115560?

Два дни след пачовете за уязвимостите на PHP2Shell CVE-2026-109618 и CVE-2026-109619 проектът PHP публикува още една бележка. CVE-2026-115560 засяга обработката на сесиите в PHP във връзка с функцията Session Upload Progress, която записва напредъка на текущите качвания на файлове в сесията.

Според php.net е възможно отдалечено изпълнение на злонамерен код, но само при необичайна конфигурация. Пълният advisory с всички подробности трябва да последва със следващото редовно издание с поправки на грешки. Дотогава познанията са съзнателно оскъдни.

## Какво прави Session Upload Progress?

Session Upload Progress е функция за удобство на PHP. Когато посетител качва по-голям файл, PHP по време на качването постоянно записва в сесията данни за напредъка: колко данни вече са пристигнали и кой файл се предава в момента. Едно приложение може паралелно да чете тези данни и да изгради индикатор за напредък.

На практика това ползват малко приложения, защото съвременните формуляри за качване обикновено измерват напредъка директно в браузъра. В PHP функцията обаче е включена по подразбиране. Затова тя се появява както при CVE-2026-115560, така и при временните мерки срещу PHP2Shell: което не е нужно, трябва да е изключено.

## Кога един сървър е засегнат от CVE-2026-115560?

Според бележката на php.net трябва да са налице три условия:

1. В конфигурацията като `session.serialize_handler` е зададена стойност `php_binary` или `php_serialize`.
2. Приложението превключва тази стойност по време на изпълнение чрез `ini_set()` на `php`, преди да извика `session_start()`.
3. Session Upload Progress е активен.

Стандартната стойност на `session.serialize_handler` е `php`. Превключване в конфигурацията и връщане в кода е необичайно, но се среща в развити собствени разработки или при библиотеки със собствена обработка на сесиите. Дали това важи при Вас, може да се провери.

## Така проверявате конфигурацията си

Първо ефективните стойности. CLI може да чете друг php.ini, различен от PHP-FPM или mod_php; затова проверете и конфигурацията на уеб сървъра или на FPM пула.

```bash
php -i | grep -E "session.serialize_handler|session.upload_progress.enabled"
grep -rn "serialize_handler\|upload_progress" /etc/php/ 2>/dev/null   # пътят е различен според дистрибуцията
```

След това кодът на приложението. Следното търсене е само за четене и показва места, където обработчикът се задава по време на изпълнение:

```bash
grep -rn "session.serialize_handler" /var/www/ --include="*.php"
```

Ако търсенето не намери нищо и обработчикът в конфигурацията е `php`, описаната комбинация е малко вероятна. Session Upload Progress все пак трябва да изключите, защото php.net назовава същата настройка и като временна мярка срещу PHP2Shell.

## Средство: session.upload_progress.enabled=0

Задайте стойността в php.ini, във FPM пула или в конфигурацията на сървъра. Според php.net изрично не чрез `ini_set()` или `.user.ini`, защото там тя действа твърде късно или може да бъде презаписана от приложението.

```ini
; php.ini (за всички пулове и SAPI, които четат този файл)
session.upload_progress.enabled = 0

; или във FPM пула
php_admin_flag[session.upload_progress.enabled] = off
```

```apache
# Apache с mod_php, във VirtualHost или в конфигурацията на сървъра
php_admin_flag session.upload_progress.enabled off
```

След това рестартирайте всички PHP worker процеси, например `systemctl restart php8.3-fpm` или Apache при mod_php. Имената на пакетите и услугите се различават според дистрибуцията. Без рестартиране старата настройка продължава да действа. Повече има на страницата [Рестартиране на PHP-FPM и на всички worker процеси](https://phpsos.de/bg/php2shell/php-fpm-neustart/).

> **Съвет:**
> След рестартирането проверете дали настройката действително е в сила: в уеб контекст, а не само в командния ред. Кратко настроена, защитена от достъп phpinfo страница показва ефективната стойност; изтрийте я веднага след това.

## Оценка до PHP2Shell

CVE-2026-115560 е значително по-тясна от двете уязвимости на PHP2Shell, които действат в обичайните режими на работа без особена конфигурация. Който трябва да приоритизира, първо внася актуализацията за PHP2Shell, а след това задава `session.upload_progress.enabled=0`. И двете заедно са осъществими в един прозорец за поддръжка.

За управителите и нетехническите хора: CVE-2026-115560 не е повод за тревога, но е точка в списъка. Настройката се задава бързо, почти не се отразява осезаемо на никое приложение и същевременно покрива една от временните мерки срещу PHP2Shell. Останалите временни мерки на php.net са на страницата [Незабавни мерки, когато още не можете да пачнете](https://phpsos.de/bg/php2shell/sofortmassnahmen-ohne-patch/), общите бележки за конфигурацията на сесиите на страницата [Защита на сесиите в PHP](https://phpsos.de/bg/ratgeber/session-sicherheit-php/).

Какво още не знаем: кои PHP версии точно са засегнати и кое издание ще донесе поправката. Ще актуализираме тази страница, щом advisory-то излезе.

## Как помага PHP SOS конкретно?

В рамките на [заздравяването на сървъра](https://phpsos.de/bg/leistungen/server-haertung/) прилагаме средството трайно и проверимо:

- **Четене на конфигурацията:** ефективни стойности на сесиите за всеки SAPI, пул и виртуален хост.
- **Претърсване на кода:** места, където обработчикът или опциите за сесиите се променят по време на изпълнение.
- **Изключване на правилното място:** в php.ini, пула или конфигурацията на сървъра, без възможност приложението да го презапише, с последващо рестартиране.
- **Проследяване:** Когато излезе изданието с поправка, го внасяме и документираме състоянието.


## Често задавани въпроси

**Част от PHP2Shell ли е CVE-2026-115560?**  
Съобщението дойде два дни след пачовете на PHP2Shell и също засяга самия PHP. То е обаче отделна уязвимост със собствен номер CVE и действа само при определена, необичайна конфигурация. Актуализациите на PHP2Shell от 21 октомври не я отстраняват според досегашното състояние.

**Има ли вече актуализация срещу CVE-2026-115560?**  
Към 25.10.2026 г. не. php.net обявява, че пълният advisory ще последва със следващото редовно издание с поправки на грешки. Дотогава препоръчваното средство е session.upload_progress.enabled=0.

**Какво се чупи, ако изключа Session Upload Progress?**  
Функцията съобщава на приложението напредъка на текущите качвания на файлове. Само приложения, които реализират такъв индикатор за напредък чрез тази PHP функция, губят показването. Самото качване продължава да работи.

## Източници

- [php.net: Съобщения за сигурност](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
